如题,我先建了一个继承了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);
}
}