2017-07-18 21 views
-1

我做了一個小例子。 我有一個帶有兩個選項卡的jTabbedPane。 在TabPanel2中按下一個按鈕後,一張桌子就會關閉。 但是表沒有出現。 請幫幫我。謝謝。JTable in JTabbedPane_TabPanel

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import javax.swing.event.*; 
import javax.swing.table.DefaultTableModel; 

public class test extends JFrame { 
    private JButton jButton1 = new JButton(); 
    private JTabbedPane jTabbedPane1 = new JTabbedPane(); 
    private JPanel jTabbedPane1TabPanel1 = new JPanel(null, true); 
    private JPanel jTabbedPane1TabPanel2 = new JPanel(null, true); 
    private JButton jButton2 = new JButton(); 

    public void jButton2_ActionPerformed(ActionEvent evt) { 
    DefaultTableModel tableModel = new DefaultTableModel(0,2); 
    tableModel.addRow(new Object[] {"string1","string2"}); 
    JTable table1 = new JTable(tableModel); 
    jTabbedPane1TabPanel2.add(table1); 
    } 
} 
+1

歡迎來到SO。請參考[tour](https://stackoverflow.com/tour),閱讀[如何提問](https://stackoverflow.com/questions/how-to-ask),並編輯您的問題以包含[最小,完整和可驗證示例](https://stackoverflow.com/help/mcve)。在你的具體情況下,你應該顯示更多的代碼。給整個班級刪除所有不相關的行,包括JFrame實例化的主要部分。在那裏可以找到許多MCVE。但是很可能你的jTabbedPane_1TabPanel1從未被添加到某個顯示*的*容器中。 – jeff6times7

回答

0
`public class test extends JFrame implements ActionListener { 

    private JButton jButton1 = new JButton("button1"); 
    private JTabbedPane jTabbedPane1 = new JTabbedPane(); 
    private JPanel jTabbedPane1TabPanel1 = new JPanel(); 
    private JPanel jTabbedPane1TabPanel2 = new JPanel(); 
    private JButton jButton2 = new JButton("button2"); 

    public test() { 
    jTabbedPane1TabPanel1.add(jButton1); 
    jTabbedPane1TabPanel2.add(jButton2, BorderLayout.PAGE_START); 
    jTabbedPane1.addTab("1", jTabbedPane1TabPanel1); 
    jTabbedPane1.addTab("2", jTabbedPane1TabPanel2); 
    jButton2.addActionListener(this); 
    JFrame frame = new JFrame(); 
    frame.setContentPane(jTabbedPane1); 
    frame.pack(); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setVisible(true); 
    } 

    public void actionPerformed(ActionEvent evt) { 
    DefaultTableModel tableModel = new DefaultTableModel(0, 2); 
    tableModel.addRow(new Object[] { 
     "string1", "string2" 
    }); 
    JTable table1 = new JTable(tableModel); 
    // System.out.println(table1.getColumnCount()); 
    // System.out.println(table1.getRowCount()); 
    jTabbedPane1TabPanel2.add(table1, BorderLayout.CENTER); 
    } 

    public static void main(String[] args) { 
    new test(); 
    } 

    }` 
+0

看看這個: –