如何使用JTabbedPane在一个JPanel中放置多个JPanels(3)? [英] How do I put multiple JPanels (3) in a JPanel Using JTabbedPane?

查看:113
本文介绍了如何使用JTabbedPane在一个JPanel中放置多个JPanels(3)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用JTabbedPane创建gui应用程序以创建5个连接到数据库的选项卡.每个选项卡都包含一个带有3个面板的面板(一个面板用于容纳JButton,另一个面板用于容纳JLabel和JTextField,最后一个面板用于容纳JTable.每个面板分别位于South,Center和North).但是在创建选项卡及其组件之后,仅显示最后一个选项卡,并且显示不正确(它显示所有5个选项卡的JLabels,JTextfields和JButton).如果我删除所有选项卡并保留一个选项卡,它将正确显示,但是如果多个选项卡将显示在最后一个选项卡上.我不知道该怎么解决.请帮助我.

I am trying to create a gui app using JTabbedPane to create 5 tabs connected to a database. Each tab contains a panel with 3 panels in it (one panel to hold JButtons another to hold JLabels and JTextFields and the last to hold a JTable. Each to the South, Center and North respectively). But after creating the tabs and its components, only the last tab displays and it displays incorrectly (it displays the JLabels, JTextfields and JButtons of all 5 tabs). If I remove all tabs and leave one it displays correctly but if more than one, it displays on the last tab. I don't know how to resolve it. Please help me.

源代码有点冗长,因此请耐心等待并帮助我检查它.如果有更好的方法编写代码,请告诉我.

The source code is a bit lengthy so please bear with me and help me check it. If there is a better way to write the code please let me know.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionListener;
import java.sql.*;
import java.util.Vector;

public class Project_SalesDatabase extends JFrame {

JTabbedPane tabbedPane = new JTabbedPane();
ImageIcon icon = createImageIcon("images/middle.gif");
JButton view = new JButton(" View ");
JButton save = new JButton(" Save ");
JButton addNew = new JButton(" Add New ");
JButton exit = new JButton(" Exit Application ");
JPanel displayBiscuitsPanel = new JPanel();
JPanel displayCookingPanel = new JPanel();
JPanel displayCustomersPanel = new JPanel();
JPanel displayEmployeesPanel = new JPanel();
JPanel displayProvisionsPanel = new JPanel();
JPanel displayButton = new JPanel();
JPanel displayContent = new JPanel((new GridLayout(10, 2)));
JPanel displayTable = new JPanel(new GridLayout(1, 2));
JTextField biscuitName = new JTextField();
JTextField biscuitPrice = new JTextField();
JTextField biscuitCompany = new JTextField();
JTextField quantityOfBiscuitsBought = new JTextField();
JTextField quantityOfBiscuitsSold = new JTextField();
JTextField quantityInStock = new JTextField();
JTextField itemName = new JTextField();
JTextField itemPrice = new JTextField();
JTextField itemType = new JTextField();
JTextField quantityOfitemsBought = new JTextField();
JTextField quantityOfitemsSold = new JTextField();
JTextField firstName = new JTextField();
JTextField lastName = new JTextField();
JTextField customerAttendant = new JTextField();
JTextField customerAttendantPosition = new JTextField();
JTextField isCustomerADebtor = new JTextField();
JTextField orderNumber = new JTextField();
JTextField debtAmount = new JTextField();
JTextField address = new JTextField();
JTextField phoneNumber = new JTextField();
JTextField position = new JTextField();
JTextField age = new JTextField();
JTextField salary = new JTextField();
JTextField nextOfKin = new JTextField();
JTextField relationshipWithNextOfKin = new JTextField();
JTextField nextOfKinPhoneNumber = new JTextField();
JTextField itemCompany = new JTextField();

public static void main(String[] args) {
    Project_SalesDatabase mainFrame = new Project_SalesDatabase();
    mainFrame.setLocationRelativeTo(null);
    mainFrame.setVisible(true);
    mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public Project_SalesDatabase() {

    setTitle(" Database App ");
    setSize(1000, 500);

    // Create the tab pages
    biscuitsTable();
    cookingIngredientsTable();
    customersTable();
    employeesTable();
    provisionsTable();

    JPanel topPanel = new JPanel();
    topPanel.setLayout(new GridLayout(1, 3));
    getContentPane().add(topPanel);
    topPanel.add(tabbedPane, BorderLayout.CENTER);


    // Create tabs in tabbedPane
    tabbedPane.addTab("Biscuits Database", icon, displayBiscuitsPanel,
            "Allows you to view or Enter Data into the Biscuits Database");

    tabbedPane.addTab("Cooking Ingredients Database", icon, displayCookingPanel,
            "Allows you to view or Enter Data into the Cooking Ingredients Database");

    tabbedPane.addTab("Customers Database", icon, displayCustomersPanel,
            "Allows you to view or Enter Data into the Customers Database");

    tabbedPane.addTab("Employees Database", icon, displayEmployeesPanel,
            "Allows you to view or Enter Data into the Employees Database");

    tabbedPane.addTab("Provisions Database", icon, displayProvisionsPanel,
            "Allows you to view or Enter Data into the Provisions Database");

    //Enable scrolling in tabs.
    tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
}

public static ImageIcon createImageIcon(String path) {
    java.net.URL imgURL = Project_SalesDatabase.class.getResource(path);
    if (imgURL != null) {
        return new ImageIcon(imgURL);
    } else {
        System.err.println("Couldn't find file: " + path);
        return null;
    }
}

public final void biscuitsTable() {
    displayBiscuitsPanel.setLayout(new BorderLayout());
    displayBiscuitsPanel.add(displayContent, BorderLayout.CENTER);
    displayBiscuitsPanel.add(displayButton, BorderLayout.SOUTH);
    displayBiscuitsPanel.add(displayTable, BorderLayout.NORTH);

    displayContent.add(new JLabel("Biscuit Name"));
    displayContent.add(biscuitName);
    displayContent.add(new JLabel("Biscuit Price"));
    displayContent.add(biscuitPrice);
    displayContent.add(new JLabel("Biscuit Company"));
    displayContent.add(biscuitCompany);
    displayContent.add(new JLabel("Quantity Of Biscuits Bought"));
    displayContent.add(quantityOfBiscuitsBought);
    displayContent.add(new JLabel("Quantity Of Biscuits Sold"));
    displayContent.add(quantityOfBiscuitsSold);
    displayContent.add(new JLabel("Quantity In Stock"));
    displayContent.add(quantityInStock);

    displayButton.add(addNew);
    displayButton.add(save);
    displayButton.add(view);
    displayButton.add(exit);

    view.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {

            String db_url = "jdbc:odbc:ProjectSalesDatabase";
            String username = "";
            String password = "";
            Connection con = null;

            try {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                con = DriverManager.getConnection(db_url, username, password);
            } catch (ClassNotFoundException | SQLException f) {
                JOptionPane.showMessageDialog(rootPane, f.getMessage());
            }

            Statement state = null;
            ResultSet set = null;

            try {

                String Query = "SELECT * FROM Biscuits";
                state = con.createStatement();
                set = state.executeQuery(Query);

                boolean nextrec = set.next();
                if (!nextrec) {
                    JOptionPane.showMessageDialog(rootPane, "No Record");
                } else {
                    Vector col = new Vector();
                    Vector row = new Vector();

                    ResultSetMetaData rsm = set.getMetaData();

                    for (int x = 1; x <= rsm.getColumnCount(); x++) {
                        col.addElement(rsm.getColumnName(x));
                    }
                    do {
                        row.addElement(getNextRow(set, rsm));
                    } while (set.next());

                    JTable tab = new JTable(row, col);
                    displayContent.removeAll();
                    displayTable.removeAll();
                    displayTable.add(new JScrollPane(tab), BorderLayout.CENTER);

                    validate();
                }
                state.close();
            } catch (SQLException sql) {
                JOptionPane.showMessageDialog(rootPane, sql.getMessage());
            }
        }
    });

    save.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {

            try {
                String Query = "INSERT INTO Biscuits VALUES ('" + biscuitName.getText() + "',"
                        + "          '" + biscuitPrice.getText() + "',"
                        + "          '" + biscuitCompany.getText() + "',"
                        + "          '" + quantityOfBiscuitsBought.getText() + "',"
                        + "          '" + quantityOfBiscuitsSold.getText() + "',"
                        + "          '" + quantityInStock.getText() + "')";

                String db_url = "jdbc:odbc:ProjectSalesDatabase";
                String username = "";
                String password = "";
                Connection con = null;
                try {
                    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                    con = DriverManager.getConnection(db_url, username, password);
                } catch (ClassNotFoundException | SQLException f) {

                    JOptionPane.showMessageDialog(rootPane, f.getMessage());
                }
                Statement state = con.createStatement();
                int rep = state.executeUpdate(Query);
                if (rep == 0) {
                    JOptionPane.showMessageDialog(rootPane, "No Data Saved");
                } else {
                    JOptionPane.showMessageDialog(rootPane, "Data Saved");
                }
            } catch (SQLException sqle) {
                sqle.getMessage();
            }
        }
    });

    addNew.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {

            try {

                biscuitName.setText("");
                biscuitPrice.setText("");
                biscuitCompany.setText("");
                quantityOfBiscuitsBought.setText("");
                quantityOfBiscuitsSold.setText("");
                quantityInStock.setText("");

                displayTable.removeAll();
                displayContent.removeAll();

                displayContent.add(new JLabel("Biscuit Name"));
                displayContent.add(biscuitName);
                displayContent.add(new JLabel("Biscuit Price"));
                displayContent.add(biscuitPrice);
                displayContent.add(new JLabel("Biscuit Company"));
                displayContent.add(biscuitCompany);
                displayContent.add(new JLabel("Quantity Of Biscuits Bought"));
                displayContent.add(quantityOfBiscuitsBought);
                displayContent.add(new JLabel("Quantity Of Biscuits Sold"));
                displayContent.add(quantityOfBiscuitsSold);
                displayContent.add(new JLabel("Quantity In Stock"));
                displayContent.add(quantityInStock);

                validate();

            } catch (Exception f) {
                f.getMessage();
            }
        }
    });

    exit.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            System.exit(0);
        }
    });
}

public final void cookingIngredientsTable() {
    displayCookingPanel.setLayout(new BorderLayout());
    displayCookingPanel.add(displayContent, BorderLayout.CENTER);
    displayCookingPanel.add(displayButton, BorderLayout.SOUTH);
    displayCookingPanel.add(displayTable, BorderLayout.NORTH);

    displayContent.add(new JLabel("Item Name"));
    displayContent.add(itemName);
    displayContent.add(new JLabel("Item Price"));
    displayContent.add(itemPrice);
    displayContent.add(new JLabel("Item Type"));
    displayContent.add(itemType);
    displayContent.add(new JLabel("Quantity Of Items Bought"));
    displayContent.add(quantityOfitemsBought);
    displayContent.add(new JLabel("Quantity Of Items Sold"));
    displayContent.add(quantityOfitemsSold);
    displayContent.add(new JLabel("Quantity In Stock"));
    displayContent.add(quantityInStock);

    displayButton.add(addNew);
    displayButton.add(save);
    displayButton.add(view);
    displayButton.add(exit);

    view.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            String db_url = "jdbc:odbc:ProjectSalesDatabase";
            String username = "";
            String password = "";
            Connection con = null;
            try {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                con = DriverManager.getConnection(db_url, username, password);
            } catch (ClassNotFoundException | SQLException f) {
                JOptionPane.showMessageDialog(rootPane, f.getMessage());
            }

            Statement state = null;
            ResultSet set = null;

            try {

                String Query = "SELECT * FROM CookingIngredients";
                state = con.createStatement();
                set = state.executeQuery(Query);

                boolean nextrec = set.next();
                if (!nextrec) {
                    JOptionPane.showMessageDialog(rootPane, "No Record");
                } else {
                    Vector col = new Vector();
                    Vector row = new Vector();

                    ResultSetMetaData rsm = set.getMetaData();

                    for (int x = 1; x <= rsm.getColumnCount(); x++) {
                        col.addElement(rsm.getColumnName(x));
                    }
                    do {
                        row.addElement(getNextRow(set, rsm));
                    } while (set.next());
                    JTable tab = new JTable(row, col);
                    displayContent.removeAll();
                    displayTable.removeAll();
                    displayTable.add(new JScrollPane(tab), BorderLayout.CENTER);
                    validate();
                }
                state.close();

            } catch (SQLException sql) {
                JOptionPane.showMessageDialog(rootPane, sql.getMessage());
            }
        }
    });

    save.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {

            try {
                String Query = "INSERT INTO CookingIngredients VALUES ('" + itemName.getText() + "',"
                        + "          '" + itemPrice.getText() + "',"
                        + "          '" + itemType.getText() + "',"
                        + "          '" + quantityOfitemsBought.getText() + "',"
                        + "          '" + quantityOfitemsSold.getText() + "',"
                        + "          '" + quantityInStock.getText() + "')";

                String db_url = "jdbc:odbc:ProjectSalesDatabase";
                String username = "";
                String password = "";
                Connection con = null;
                try {
                    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                    con = DriverManager.getConnection(db_url, username, password);
                } catch (ClassNotFoundException | SQLException f) {
                    JOptionPane.showMessageDialog(rootPane, f.getMessage());
                }
                Statement state = con.createStatement();
                int rep = state.executeUpdate(Query);
                if (rep == 0) {
                    JOptionPane.showMessageDialog(rootPane, "No Data Saved");
                } else {
                    JOptionPane.showMessageDialog(rootPane, "Data Saved");
                }
            } catch (SQLException sqle) {
                sqle.getMessage();
            }
        }
    });

    addNew.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {

            try {

                itemName.setText("");
                itemPrice.setText("");
                itemType.setText("");
                quantityOfitemsBought.setText("");
                quantityOfBiscuitsSold.setText("");
                quantityOfitemsSold.setText("");
                quantityInStock.setText("");

                displayTable.removeAll();
                displayContent.removeAll();

                displayContent.add(new JLabel("Item Name"));
                displayContent.add(itemName);
                displayContent.add(new JLabel("Item Price"));
                displayContent.add(itemPrice);
                displayContent.add(new JLabel("Item Type"));
                displayContent.add(itemType);
                displayContent.add(new JLabel("Quantity Of Items Bought"));
                displayContent.add(quantityOfitemsBought);
                displayContent.add(new JLabel("Quantity Of Items Sold"));
                displayContent.add(quantityOfitemsSold);
                displayContent.add(new JLabel("Quantity In Stock"));
                displayContent.add(quantityInStock);

                validate();

            } catch (Exception f) {
                f.getMessage();
            }
        }
    });
}

public final void customersTable() {
    displayCustomersPanel.setLayout(new BorderLayout());
    displayCustomersPanel.add(displayContent, BorderLayout.CENTER);
    displayCustomersPanel.add(displayButton, BorderLayout.SOUTH);
    displayCustomersPanel.add(displayTable, BorderLayout.NORTH);

    displayContent.add(new JLabel("First Name"));
    displayContent.add(firstName);
    displayContent.add(new JLabel("Last Name"));
    displayContent.add(lastName);
    displayContent.add(new JLabel("Customer Attendant"));
    displayContent.add(customerAttendant);
    displayContent.add(new JLabel("Customer Attendant's Position"));
    displayContent.add(customerAttendantPosition);
    displayContent.add(new JLabel("Is This Customer A Debtor?"));
    displayContent.add(isCustomerADebtor);
    displayContent.add(new JLabel("Order Number"));
    displayContent.add(orderNumber);
    displayContent.add(new JLabel("Debt Amount"));
    displayContent.add(debtAmount);
    displayContent.add(new JLabel("Customer's Address"));
    displayContent.add(address);
    displayContent.add(new JLabel("Customer's Phone Number"));
    displayContent.add(phoneNumber);

    displayButton.add(addNew);
    displayButton.add(save);
    displayButton.add(view);
    displayButton.add(exit);

    //button actions same as other methods. Removed it because of body character limits
}

public final void employeesTable() {
    displayEmployeesPanel.setLayout(new BorderLayout());
    displayEmployeesPanel.add(displayContent, BorderLayout.CENTER);
    displayEmployeesPanel.add(displayButton, BorderLayout.SOUTH);
    displayEmployeesPanel.add(displayTable, BorderLayout.NORTH);

    displayContent.add(new JLabel("First Name"));
    displayContent.add(firstName);
    displayContent.add(new JLabel("Last Name"));
    displayContent.add(lastName);
    displayContent.add(new JLabel("Position"));
    displayContent.add(position);
    displayContent.add(new JLabel("Age"));
    displayContent.add(age);
    displayContent.add(new JLabel("Salary"));
    displayContent.add(salary);
    displayContent.add(new JLabel("Employees's Address"));
    displayContent.add(address);
    displayContent.add(new JLabel("Employees's Phone Number(s)"));
    displayContent.add(phoneNumber);
    displayContent.add(new JLabel("Next of Kin"));
    displayContent.add(nextOfKin);
    displayContent.add(new JLabel("Relationship With Next of Kin"));
    displayContent.add(relationshipWithNextOfKin);
    displayContent.add(new JLabel("Next of Kin's Phone Number(s)"));
    displayContent.add(nextOfKinPhoneNumber);

    displayButton.add(addNew);
    displayButton.add(save);
    displayButton.add(view);
    displayButton.add(exit);

    //button actions same as other methods. Removed it because of body character limits
}

public final void provisionsTable() {
    displayProvisionsPanel.setLayout(new BorderLayout());
    displayProvisionsPanel.add(displayContent, BorderLayout.CENTER);
    displayProvisionsPanel.add(displayButton, BorderLayout.SOUTH);
    displayProvisionsPanel.add(displayTable, BorderLayout.NORTH);

    displayContent.add(new JLabel("Item Name"));
    displayContent.add(itemName);
    displayContent.add(new JLabel("Item Price"));
    displayContent.add(itemPrice);
    displayContent.add(new JLabel("Item Company"));
    displayContent.add(itemCompany);
    displayContent.add(new JLabel("Quantity Of Items Bought"));
    displayContent.add(quantityOfitemsBought);
    displayContent.add(new JLabel("Quantity Of Items Sold"));
    displayContent.add(quantityOfitemsSold);
    displayContent.add(new JLabel("Quantity In Stock"));
    displayContent.add(quantityInStock);

    displayButton.add(addNew);
    displayButton.add(save);
    displayButton.add(view);
    displayButton.add(exit);

    view.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            String db_url = "jdbc:odbc:ProjectSalesDatabase";
            String username = "";
            String password = "";
            Connection con = null;
            try {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                con = DriverManager.getConnection(db_url, username, password);
            } catch (ClassNotFoundException | SQLException f) {
                JOptionPane.showMessageDialog(rootPane, f.getMessage());
            }

            Statement state = null;
            ResultSet set = null;

            try {

                String Query = "SELECT * FROM Provisions";
                state = con.createStatement();
                set = state.executeQuery(Query);

                boolean nextrec = set.next();
                if (!nextrec) {
                    JOptionPane.showMessageDialog(rootPane, "No Record");
                } else {
                    Vector col = new Vector();
                    Vector row = new Vector();

                    ResultSetMetaData rsm = set.getMetaData();

                    for (int x = 1; x <= rsm.getColumnCount(); x++) {
                        col.addElement(rsm.getColumnName(x));
                    }
                    do {
                        row.addElement(getNextRow(set, rsm));
                    } while (set.next());

                    JTable tab = new JTable(row, col);
                    displayContent.removeAll();
                    displayTable.removeAll();
                    displayTable.add(new JScrollPane(tab), BorderLayout.CENTER);

                    validate();
                }
                state.close();
            } catch (SQLException sql) {
                JOptionPane.showMessageDialog(rootPane, sql.getMessage());
            }
        }
    });

    save.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {

            try {
                String Query = "INSERT INTO Provisions VALUES ('" + itemName.getText() + "',"
                        + "          '" + itemPrice.getText() + "',"
                        + "          '" + itemCompany.getText() + "',"
                        + "          '" + quantityOfitemsBought.getText() + "',"
                        + "          '" + quantityOfitemsSold.getText() + "',"
                        + "          '" + quantityInStock.getText() + "')";

                String db_url = "jdbc:odbc:ProjectSalesDatabase";
                String username = "";
                String password = "";
                Connection con = null;
                try {
                    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                    con = DriverManager.getConnection(db_url, username, password);
                } catch (ClassNotFoundException | SQLException f) {
                    JOptionPane.showMessageDialog(rootPane, f.getMessage());
                }
                Statement state = con.createStatement();
                int rep = state.executeUpdate(Query);
                if (rep == 0) {
                    JOptionPane.showMessageDialog(rootPane, "No Data Saved");
                } else {
                    JOptionPane.showMessageDialog(rootPane, "Data Saved");
                }
            } catch (SQLException sqle) {
                sqle.getMessage();
            }
        }
    });

    addNew.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {

            try {

                itemName.setText("");
                itemPrice.setText("");
                itemCompany.setText("");
                quantityOfitemsBought.setText("");
                quantityOfitemsSold.setText("");
                quantityInStock.setText("");

                displayTable.removeAll();
                displayContent.removeAll();

                displayContent.add(new JLabel("Item Name"));
                displayContent.add(itemName);
                displayContent.add(new JLabel("Item Price"));
                displayContent.add(itemPrice);
                displayContent.add(new JLabel("Item Company"));
                displayContent.add(itemCompany);
                displayContent.add(new JLabel("Quantity Of Items Bought"));
                displayContent.add(quantityOfitemsBought);
                displayContent.add(new JLabel("Quantity Of Items Sold"));
                displayContent.add(quantityOfitemsSold);
                displayContent.add(new JLabel("Quantity In Stock"));
                displayContent.add(quantityInStock);

                validate();

            } catch (Exception f) {
                f.getMessage();
            }
        }
    });
}

Vector getNextRow(ResultSet set, ResultSetMetaData rsm) {
    Vector currentRow = new Vector();
    try {
        for (int x = 1; x <= rsm.getColumnCount(); x++) {
            switch (rsm.getColumnType(x)) {
                case Types.VARCHAR:
                    currentRow.addElement(set.getString(x));
                    break;
                case Types.INTEGER:
                    currentRow.addElement(new Long(set.getLong(x)));
                    break;
                default:
                    System.out.println("No column type known");
                    break;
            }
        }
    } catch (SQLException sqle) {
        sqle.getMessage();
    }
    return currentRow;
}
}

我不知道为什么它不能正常工作.如果有人可以尝试编译/运行它,请查看我在说什么.谢谢.

I don't know why its not working correctly. Please if anybody can try and compile/run it to see what I'm saying. Thanks.

推荐答案

I am trying to create a gui app using JTabbedPane to create 5 tabs. Each tab contains a panel with 3 panels in it

正如Swing组件的性质一样,除了JFrame之外,您还可以将一个JComponent嵌入另一个内.
因此,您需要做的是创建一个JPanel.确保它具有3个列和1行的GridLayout(或者,如果需要,反之亦然).
然后,将三个JPanels添加到具有网格布局的此基本JPanel中.

As is the nature of Swing components, you can embed one JComponent inside another except for JFrame.
So, what you need to do is to create a JPanel. Make sure it has a GridLayout for 3 cols and 1 row (or the other way around, if that is your need).
Then, add the three JPanels to this base JPanel which has grid layout.

最后,将基本JPanel添加到您的JTabbedPane中.看一下JPanel教程: http://docs.oracle .com/javase/tutorial/uiswing/components/tabbedpane.html

Finally, add the base JPanel to your JTabbedPane. Have a look at the JPanel tutorial: http://docs.oracle.com/javase/tutorial/uiswing/components/tabbedpane.html

这篇关于如何使用JTabbedPane在一个JPanel中放置多个JPanels(3)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆