wp9xla18
wp9xla18
2017-11-20 14:34
采纳率: 0%
浏览 2.3k

关于Jpanel, JScrollPane ,Jtable嵌套使用的问题

如题,我先建了一个继承了JPanel的 ListAddMainPanel。在这个ListAddMainPanel中,我嵌套了一个JScrollPane类的panel_1,在这个JScrollPane里,我放置了一个Jtable,Jtable 使用了DefaultTableModel。(可能看着有点晕,其实很简单,就是下面的那个图片)

使用时,我是在JFrame里的contentPane里先新建一个底层Panel,然后调用这个ListAddMainPanel的构造函数。想要给Table里加数据时,调用这个ListAddMainPanel里之前写好的fulfillTable函数

菜鸟觉得这个架构理论上应该行得通,但是问题来了,无论我使用什么样的方法,比如addRow();addColumn();setColumnIdentifiers();
测试显示没有问题,数据也传进去了,程序也没报错,可他的界面就是没有出现表格_(:зゝ∠)_
换了很多种方法,都没奏效,于是默默来求大佬帮助_(:зゝ∠)_
![图片说明](https://img-ask.csdn.net/upload/2

 package w.teacher;

import java.awt.Dimension;

import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JButton;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JComboBox;

public class ListAddMainPanel extends JPanel {
//  private JTable table1,table2,table3,table4,table5;
    public JLabel timeLabel;
    public JTable table;
    public DefaultTableModel tableModel;
    public JTextField textField;
    public JComboBox<String> gradeBox;
    public JButton addButton,importButton;

    /**
     * Create the panel.
     */
    public ListAddMainPanel() {
        setLayout(null);
        setPreferredSize(new Dimension(856, 417));
        setOpaque(false);




        JScrollPane panel_1 = new JScrollPane(table);
        panel_1.setBounds(14, 72, 493, 319);
        panel_1.setLayout(null);
        panel_1.setVisible(true);
        add(panel_1);




        //Table
        table = new JTable(tableModel);
//      tableModel = (DefaultTableModel)table.getModel();
//      table.setPreferredScrollableViewportSize(new Dimension(493,319));//设置table大小
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);//关闭表格列自动调整,此时水平滚动条可见
//      table.setBounds(0, 0, 493, 319);
        panel_1.add(table);//原位置Table代码
        table.setVisible(true);
//      tableModel.setColumnIdentifiers(name1111);
        panel_1.setViewportView(table);//原位置Table代码
}
public void fulfillTable(String[] title,String[][] data) {
//       for(int i = 0;i<100;i++){
//          for(int j = 0;j<7;j++)
//              System.out.println(data[i][j]);
//         }


//  tableModel = new DefaultTableModel(data, name);

//      table = new JTable(tableModel);

        if(title!=null) {
            for(int i = 0;i<title.length;i++) {
            tableModel.addColumn(title[i]);
            }
        }

        for(int i = 0;data[i+1][0]!=null;i++) {
            String[]  mString = new String[data[i].length];
            for(int y = 0;y<7;y++) {
                mString[y] = data[i][y];
                System.out.println(mString[y]);
            }
            tableModel.addRow(mString);
//          System.out.println(mString);
        }
    }
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • wp9xla18
    wp9xla18 2017-11-20 14:34

    图片说明
    图片好像没出来,我再发一次试试

    点赞 评论

相关推荐