📄 basicpanel.java
字号:
/*
* @Author IBima
* Created on Dec 11, 2006
*
*/
import java.awt.BorderLayout;
import java.awt.CardLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTable;
import javax.swing.JTree;
import javax.swing.SwingUtilities;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.table.AbstractTableModel;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
public class BasicPanel extends JPanel implements TreeSelectionListener{
private JFrame frame;
private JPanel rightPanel;
private CardLayout cardLayout;
private JTable table1,table2;
private JScrollPane scrollPane1,scrollPane2;
private JTree tree;
private JSplitPane splitPane;
public BasicPanel() {
initComponent();
}
private void initComponent() {
//inisialiasai JTree
initTree();
table1 = new JTable(new SimpleTableModel());
table2 = new JTable(new SimpleTableModel2());
scrollPane1 = new JScrollPane();
scrollPane2 = new JScrollPane();
cardLayout = new CardLayout();
rightPanel = new JPanel(cardLayout);
//memasukkan table1 & 2 ke scrollpanel yang bersesuaian
scrollPane1.setViewportView(table1);
scrollPane1.validate();
scrollPane2.setViewportView(table2);
scrollPane2.validate();
//memasukkan scrollpane ke cardlayout
rightPanel.add(scrollPane1,"Table1");
rightPanel.add(scrollPane2,"Table2");
// cardLayout.addLayoutComponent(scrollPane1, "Table1");
// cardLayout.addLayoutComponent(scrollPane2, "Table2");
//tampilannya JFrame byar keren heheheh
JFrame.setDefaultLookAndFeelDecorated(true);
//inisialisasi splitpane
splitPane = new JSplitPane();
splitPane.setDividerLocation(300);
splitPane.setOneTouchExpandable(true);
//memasukkan tree ke sebelah kiri splitpane
splitPane.setLeftComponent(tree);
//memasukkan rightpanel ke sebelah kanan splitpane
splitPane.setRightComponent(rightPanel);
this.setLayout(new BorderLayout());
this.add(splitPane,BorderLayout.CENTER);
//byar tampilan Framenya keren bow... :D
JFrame.setDefaultLookAndFeelDecorated(true);
frame = new JFrame("Basic Panel layout in Swing Application");
//memasukkan panel ini ke JFrame
frame.getContentPane().add(this);
//byar pas nongol framenya di Maximized
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setSize(800, 600);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//menampilkan table1 di sebelah kanan
tree.setSelectionRow(1);
}
private void initTree() {
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");
DefaultMutableTreeNode table1 = new DefaultMutableTreeNode("Table1");
DefaultMutableTreeNode table2 = new DefaultMutableTreeNode("Table2");
root.add(table1);
root.add(table2);
//memasukkan root dan anak2nya ke dalam JTree
tree = new JTree(new DefaultTreeModel(root));
//mendaftarkan panel ini (this) sebagai JTree listener
tree.addTreeSelectionListener(this);
//untuk pertama select table1
}
/**
* method implement dari interface TreeSelectionListener
* method ini akan dipanggil jika ada node dari JTree yang diklik
*/
public void valueChanged(TreeSelectionEvent e) {
DefaultMutableTreeNode nodeSelected = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
String str = (String) nodeSelected.getUserObject();
if(str.equals("Table1")) {
cardLayout.show(rightPanel, "Table1");
} else
cardLayout.show(rightPanel, "Table2");
}
public static void main(String[] args) {
SwingUtilities.invokeLater(
new Runnable() {
public void run() {
new BasicPanel();
}
}
);
}
}
class SimpleTableModel extends AbstractTableModel{
@Override
public String getColumnName(int column) {
// TODO Auto-generated method stub
return "Kolom ke -" + column;
}
public int getColumnCount() {
return 5;
}
public int getRowCount() {
// TODO Auto-generated method stub
return 5;
}
public Object getValueAt(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
return rowIndex*columnIndex;
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
return true;
}
}
class SimpleTableModel2 extends AbstractTableModel{
@Override
public String getColumnName(int column) {
// TODO Auto-generated method stub
return "Kolom ke -" + column;
}
public int getColumnCount() {
return 5;
}
public int getRowCount() {
// TODO Auto-generated method stub
return 5;
}
public Object getValueAt(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
return rowIndex*columnIndex + System.currentTimeMillis();
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -