我正在尝试在Java中显示JTable,但我无法让它显示出来。我尝试过来自不同网站的一些不同的方法,Java没有抛出任何错误 - 它只是不显示。其他Swing元素显示,所以我不确定是什么问题。
public class MusicIO extends JFrame implements ActionListener{
Container pane = this.getContentPane();
JButton loadBtn, saveBtn;
JTable table;
public static void main(String[] args) {
MusicIO music = new MusicIO();
music.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
music.setSize(500, 500);
music.init();
music.setVisible(true);
}
public void init(){
pane.setLayout(null);
loadBtn = new JButton("Load from File");
loadBtn.setBounds(10, 10, 180, 30);
loadBtn.addActionListener(this);
pane.add(loadBtn);
saveBtn = new JButton("Save to File");
saveBtn.setBounds(290, 10, 180, 30);
saveBtn.addActionListener(this);
pane.add(saveBtn);
displayDataInTable();
}
public void displayDataInTable(){
String[] columns = {"Track Name", "Artist Name", "Album", "Length", "Year"};
Object[][] data = {{"t", "a", "a", "1", "1"}};
table = new JTable(data, columns);
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
table.setFillsViewportHeight(true);
JScrollPane scrollPane = new JScrollPane(table);
pane.add(scrollPane, BorderLayout.CENTER);
}
}
答案 0 :(得分:1)
您没有在内容窗格中正确设置JScrollpane的位置。
如果您只是添加:
scrollPane.setBounds(50,50,50,50);
到displayDataInTable()方法,您应该能够看到正在添加滚动窗格,它只是没有被定位
我强烈建议你查找java布局管理器以及如何使用嵌套的JPanel创建Swing GUI。 (官方的oracle / sun教程在这方面做得很好。)