Moncel 2022-12-09 16:42 采纳率: 86.7%
浏览 73
已结题

JAVA swing如何实现界面表格刷新

点击个人信息会出现一行表格
点击全村信息会出现三行表格
如何进行表格的刷新
点击个人信息出现表格后再点击全村信息则不会出现三行表格,为什么?如何实现表格的刷新。

package FRAME;

import DB.DBOperation;
import DB.LinkDataBase;
import DB.PI;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.LinkedList;

public class Test extends JFrame implements ActionListener {

    int no = 0;

    JMenuBar menubar;//菜单条
    JMenu menu;//菜单,为JMenuItem的子类,便于嵌套子菜单
    JMenuItem menuItem;//菜单项
    Icon icon=new ImageIcon("a.gif");//菜单上图标
    //成员数据
    JMenuBar menuBar;
    JMenu menuFruit;
    JMenuItem pInformation,rInformation;
    JMenu appleMenu;
    JMenuItem aPInformation,aRInformation;

//    JTable table;
//    DefaultTableModel defaultModel;
//    JPanel panel;
//    JScrollPane jScrollPane;

    public Test(int pno) {
        no = pno;
        setTitle("农村人口管理系统--操作");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        /tLayout(null);
        setBounds(400, 150, 800, 500);

        iniNMenu();

        iniMMenu();



        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        setVisible(true);
    }

    public void iniNMenu(){
        menuBar = new JMenuBar();
        menuFruit = new JMenu("操作菜单");//创建一个菜单
        pInformation = new JMenuItem("个人信息");//创建一个菜单项
        rInformation = new JMenuItem("户口信息");//创建一个菜单项
        //增加监听器
        pInformation.addActionListener(this);
        rInformation.addActionListener(this);
        //向菜单中添加菜单项
        menuFruit.add(pInformation);//向菜单中添加菜单项
        menuFruit.add(rInformation);

        menuBar.add(menuFruit);//向菜单条中添加菜单
        //为实例窗口添加菜单
        this.setJMenuBar(menuBar);

    }

    public void iniMMenu(){

        //创建一个子菜单(其实也是菜单)
        appleMenu = new JMenu("管理员操作");
        aPInformation = new JMenuItem("全村户口信息");//创建子菜单菜单项
        aRInformation = new JMenuItem("全村村民信息");//创建子菜单菜单项
        //增加监听器
        aPInformation.addActionListener(this);
        aRInformation.addActionListener(this);

        menuFruit.addSeparator();//添加分割线
        menuFruit.add(appleMenu);
        appleMenu.add(aPInformation);//向子菜单中添加菜单项
        appleMenu.add(aRInformation);
        menuBar.add(menuFruit);//向菜单条中添加菜单
        //为实例窗口添加菜单
        this.setJMenuBar(menuBar);

    }

    public void nPTable(int pNo){
        String [] index={"编号","户口","姓名","性别","电话","住址","住所面积","工作地点"};
        Object [][] data=new Object[1][index.length];
        //3,向data中添加数据
        data[0][0]=2;
        data[0][1]=2;
        data[0][2]="李四";
        data[0][3]="李四";
        data[0][4]="李四";
        data[0][5]="李四";
        data[0][6]="李四";
        data[0][7]="李四";
        //4,创建一个默认的表格模型
        DefaultTableModel defaultModel = new DefaultTableModel(data, index);
        JTable table = new JTable(defaultModel);


        add(new JScrollPane(table));
    }
    public void nRTable(){

    }
    public void mPTable(){
        String [] index={"编号","户口","姓名","性别","电话","住址","住所面积","工作地点"};
        Object [][] data=new Object[3][index.length];
        //3,向data中添加数据

        for (int i = 0; i < 3; i++) {

            data[i][0]=1;
            data[i][1]=1;
            data[i][2]="张三";
            data[i][3]="张三";
            data[i][4]="张三";
            data[i][5]="张三";
            data[i][6]="张三";
            data[i][7]="张三";
        }
        //4,创建一个默认的表格模型
        DefaultTableModel defaultModel = new DefaultTableModel(data, index);
        JTable table = new JTable(defaultModel);


        add(new JScrollPane(table));
    }
    public void mRTable(){

    }

    public static void main(String[] args) {
        new Test(1);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource() == pInformation){
            nPTable(no);
        }
        if(e.getSource() == rInformation){
            nRTable();
        }
        if(e.getSource() == aPInformation){
            mPTable();
        }
        if(e.getSource() == pInformation){
            nPTable(no);
        }
        this.validate();
    }
}


  • 写回答

1条回答 默认 最新

  • pzzhao 2022-12-09 16:51
    关注

    你这个只需要将add换成 setContentPane方法就可以了

    
    this.setContentPane(new JScrollPane(table));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月10日
  • 已采纳回答 12月9日
  • 创建了问题 12月9日

悬赏问题

  • ¥15 生成的QRCode圖片加上下載按鈕
  • ¥15 板材切割优化算法,数学建模,python,lingo
  • ¥15 科来模拟ARP欺骗困惑求解
  • ¥100 iOS开发关于快捷指令截屏后如何将截屏(或从截屏中提取出的文本)回传给本应用并打开指定页面
  • ¥15 unity连接Sqlserver
  • ¥15 图中这种约束条件lingo该怎么表示出来
  • ¥15 VSCode里的Prettier如何实现等式赋值后的对齐效果?
  • ¥15 流式socket文件传输答疑
  • ¥20 keepalive配置业务服务双机单活的方法。业务服务一定是要双机单活的方式
  • ¥50 关于多次提交POST数据后,无法获取到POST数据参数的问题