2015-03-25 95 views
0

我试图在Java中显示一个JTable,但是我无法让它显示出来。我已经尝试了来自不同网站的一些不同的方法,并且Java没有引发任何错误 - 它只是不显示。其他Swing元素显示,所以我不知道问题是什么。显示一个JTable对象

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

你的问题从这里开始 - > pane.setLayout(null) – MadProgrammer 2015-03-25 10:15:00

回答

1

您没有适当地在内容窗格中设置JScrollpane的位置。

,如果你只是说:

scrollPane.setBounds(50,50,50,50); 

你应该能够看到正在添加滚动窗格中displayDataInTable()方法,它只是没有被定位

我会强烈建议您查看java布局管理器以及如何使用嵌套的JPanel创建Swing GUI。 (官方的oracle/sun教程在这方面做得很好。)