⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basicpanel.java

📁 A Simple JTreeExample that shows the use of JTree and JTable in java Application
💻 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 + -