2015-03-25 98 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教程在這方面做得很好。)