Swing JTabbedPane - 插入内容
Swing JTabbedPane - insert content
我想在每个tabbedPane 中插入不同的内容。这是我的问题,例如如何在名为 "Tabela 1" 的 tabbedPane 中插入一个 JTable ?我想在最后三个 tabbedPanes 中有三个不同的 tabels,该怎么做?
这是我的代码:
package optymalizacja;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import java.awt.BorderLayout;
import java.awt.event.KeyEvent;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.JTabbedPane;
public class Optymalizacja extends JFrame {
private static final long serialVersionUID = 1L;
public static void main( String args [ ] ) {
Optymalizacja optymalizacja = new Optymalizacja( );
optymalizacja.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
optymalizacja.setVisible( true );
}
public Optymalizacja( ) {
JTabbedPane tabbedPane = new JTabbedPane( );
String titles [ ] = { "Postac standardowa", "Postac kanoniczna", "Bazowa postac kanoniczna", "Tabela 1",
"Tabela 2", "Tabela 3" };
int mnemonic [ ] = { KeyEvent.VK_G, KeyEvent.VK_S, KeyEvent.VK_C, KeyEvent.VK_O,
KeyEvent.VK_P, KeyEvent.VK_A };
for ( int i = 0, n = titles.length; i < n; i++ ) {
add( tabbedPane, titles[ i ], mnemonic[ i ] );
}
// JTable table = new JTable( 4, 5 ); // 4 rows & 5 columns
// JTable table2 = new JTable( 4, 5 );
//
// table.setRowSelectionAllowed( false );
// table.setColumnSelectionAllowed( false );
// table.setCellSelectionEnabled( false );
//
// table2.setRowSelectionAllowed( false );
// table2.setColumnSelectionAllowed( false );
// table2.setCellSelectionEnabled( false );
//
// getContentPane().add( new JScrollPane( table ) );
// getContentPane().add( new JScrollPane( table2 ) );
add( tabbedPane, BorderLayout.CENTER );
setSize( 900, 300 );
}
static void add( JTabbedPane tabbedPane, String label, int mnemonic ) {
int count = tabbedPane.getTabCount( );
JButton button = new JButton( label );
tabbedPane.addTab( label, new ImageIcon( "yourFile.gif" ), button, label );
tabbedPane.setMnemonicAt( count, mnemonic );
}
}
例如像这样:IMAGE
为什么不向 add
方法传递一个带有 table 而不是按钮的 JPanel?
根据documentation,第三个参数是"the component to be displayed when this tab is clicked"
JPanel container = new JPanel();
//add the table and other components to the panel
tabbedPane.addTab(label, new ImageIcon("yourFile.gif"), container, label);
我想在每个tabbedPane 中插入不同的内容。这是我的问题,例如如何在名为 "Tabela 1" 的 tabbedPane 中插入一个 JTable ?我想在最后三个 tabbedPanes 中有三个不同的 tabels,该怎么做?
这是我的代码:
package optymalizacja;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import java.awt.BorderLayout;
import java.awt.event.KeyEvent;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.JTabbedPane;
public class Optymalizacja extends JFrame {
private static final long serialVersionUID = 1L;
public static void main( String args [ ] ) {
Optymalizacja optymalizacja = new Optymalizacja( );
optymalizacja.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
optymalizacja.setVisible( true );
}
public Optymalizacja( ) {
JTabbedPane tabbedPane = new JTabbedPane( );
String titles [ ] = { "Postac standardowa", "Postac kanoniczna", "Bazowa postac kanoniczna", "Tabela 1",
"Tabela 2", "Tabela 3" };
int mnemonic [ ] = { KeyEvent.VK_G, KeyEvent.VK_S, KeyEvent.VK_C, KeyEvent.VK_O,
KeyEvent.VK_P, KeyEvent.VK_A };
for ( int i = 0, n = titles.length; i < n; i++ ) {
add( tabbedPane, titles[ i ], mnemonic[ i ] );
}
// JTable table = new JTable( 4, 5 ); // 4 rows & 5 columns
// JTable table2 = new JTable( 4, 5 );
//
// table.setRowSelectionAllowed( false );
// table.setColumnSelectionAllowed( false );
// table.setCellSelectionEnabled( false );
//
// table2.setRowSelectionAllowed( false );
// table2.setColumnSelectionAllowed( false );
// table2.setCellSelectionEnabled( false );
//
// getContentPane().add( new JScrollPane( table ) );
// getContentPane().add( new JScrollPane( table2 ) );
add( tabbedPane, BorderLayout.CENTER );
setSize( 900, 300 );
}
static void add( JTabbedPane tabbedPane, String label, int mnemonic ) {
int count = tabbedPane.getTabCount( );
JButton button = new JButton( label );
tabbedPane.addTab( label, new ImageIcon( "yourFile.gif" ), button, label );
tabbedPane.setMnemonicAt( count, mnemonic );
}
}
例如像这样:IMAGE
为什么不向 add
方法传递一个带有 table 而不是按钮的 JPanel?
根据documentation,第三个参数是"the component to be displayed when this tab is clicked"
JPanel container = new JPanel();
//add the table and other components to the panel
tabbedPane.addTab(label, new ImageIcon("yourFile.gif"), container, label);