Панель вкладок объектов JFrame - Java

Узнай цену своей работы

Формулировка задачи:

Всем привет. Столкнулся с одной небольшой проблемой. У меня есть 5 объектов JFrame, которые включают в себя по две JPanel и по одной таблице. Мне необходимо открывать все эти объекты в одном окне и переключаться между ними с помощью вкладок. Находил в просторах интернета что эти вкладки должны быть объектами типа JPanel, но тогда мой код перестает работать. Подскажите как выйти из этой ситуации. Заранее благодарю. Предоставляю код одного из объектов типа JFrame.
public class ClientsTable extends JFrame{
    private JButton selectClientButton, insertClientButton, deleteClientButton,
            updateClientButton;
 
    private Connection connection;
 
    private JTextField nameText, addressText, telText ,IdText;
 
    private JTextArea errorText;
 
    public static Vector<Client> vector = new Vector<Client>();
    public static ClientsTableModel model = new ClientsTableModel(vector);    //модель таблицы
    private static ResultSet rs;
    private static Statement statement;
 
    JTable table;
 
    public ClientsTable(){
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
        } catch (Exception e) {
            System.err.println("Unable to find and load driver");
            System.exit(1);
        }
        /*addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });*/
 
        init();
        buildGUI();
    }
    private void loadClients() {
        try {
            rs = statement.executeQuery("SELECT * FROM clients");
 
            while (rs.next()) {
                 int id = rs.getInt("id");
                 String fullname = rs.getString("fullname");
                 String address = rs.getString("adress");
                 String tel = rs.getString("tel");
                Client cl = new Client(id,fullname,address,tel);
                vector.add(cl);
            }
        } catch (SQLException e) {
            System.out.println(e);
        }
    }
    void buildGUI() {
        Container c = getContentPane();
        c.setLayout(new FlowLayout());
        loadClients();
        table = new JTable(model);
        setSize(500, 700);
        //-----------Do Insert Account Button----------------
        insertClientButton = new JButton("Insert client");
        insertClientButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    String name = nameText.getText();
                    String address = addressText.getText();
                    String tel = telText.getText();
                    String query="'"+name+"','"+address+"','"+tel+"'";
                    Statement statement = connection.createStatement();
                    int i = statement
                            .executeUpdate("INSERT INTO clients(fullname,adress,tel) VALUES("+ query+")");
//                    errorText.append("Inserted " + i + " rows successfully");
                    vector.removeAllElements();
                    loadClients();
                } catch (SQLException insertException) {
                    System.out.println(insertException);
                    displaySQLErrors(insertException);
                }
                ClientsTable.model.fireTableDataChanged();
            }
        });
        //------------------------------------------------------------------------
        //-----------Do Delete Account Button---------------
        deleteClientButton = new JButton("Delete worker");
        deleteClientButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                int id = Integer.parseInt(IdText.getText());
                try {
                    Statement statement = connection.createStatement();
                    int i = statement
                            .executeUpdate("DELETE FROM clients WHERE id = "
                                    + id);
//                    errorText.append("Deleted " + i + " rows successfully");
                    vector.removeAllElements();
                    loadClients();
                } catch (SQLException insertException) {
                    displaySQLErrors(insertException);
                }
                ClientsTable.model.fireTableDataChanged();
            }
        });
        //--------------------------------------------------------------------
        //---------------Do Update worker Button------------------
        updateClientButton = new JButton("Update client");
        updateClientButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    Statement statement = connection.createStatement();
                    int i = statement.executeUpdate("UPDATE clients "
                            + "SET fullname='" + nameText.getText() + "', "
                            + "adress='" + addressText.getText() + "',"
                            + "tel='" + telText.getText() + "'" + "WHERE id = "
                            + IdText.getText());
                    //               errorText.append("Updated " + i + " rows successfully");
                    vector.removeAllElements();
                    loadClients();
                } catch (SQLException insertException) {
                    displaySQLErrors(insertException);
                }
                ClientsTable.model.fireTableDataChanged();
            }
        });
        //-------------------------------------------------------------------
        //--------------------Do Select Worker Button-------------------------
        selectClientButton = new JButton("select");
        selectClientButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    rs.first();
                    while (rs.next()) {
                        if (rs.getString("id").equals(
                                IdText.getText()))
                            break;
                    }
                    if (!rs.isAfterLast()) {
                        nameText.setText(rs.getString("fullname"));
                        addressText.setText(rs.getString("adress"));
                        telText.setText(rs.getString("tel"));
                    }
                } catch (SQLException selectException) {
                    displaySQLErrors(selectException);
                }
            }
        });
        //------------------------------------------------------------
 
        //---------insert panel---------
        nameText = new JTextField(15);
        addressText = new JTextField(15);
        telText = new JTextField(15);
        JPanel second = new JPanel();
        second.setLayout(new GridLayout(6, 2,-110,0));
        second.add(new JLabel("name"));
        second.add(nameText);
        second.add(new JLabel("address"));
        second.add(addressText);
        second.add(new JLabel("telephone"));
        second.add(telText);
        second.add(insertClientButton);
        //---------------------------------
 
        //-----add Update worker pannel------
        JPanel third = new JPanel();
        IdText = new JTextField(10);
        third.setLayout(new GridLayout(7, 4,-110,0));
        third.add(new JLabel("enter client id"));
        third.add(IdText);
        third.add(selectClientButton);
        third.add(updateClientButton);
        third.add(deleteClientButton);
 
        c.add(second);
        c.add(third);
        c.add(new JScrollPane(table));
 
        show();
    }
    public void connectToDB() {
        try {
            connection = DriverManager
                    .getConnection("jdbc:mysql://localhost:3306/accounts?user=root&password=root");
            statement = connection.createStatement();
 
        } catch (SQLException connectException) {
            System.out.println(connectException.getMessage());
            System.out.println(connectException.getSQLState());
            System.out.println(connectException.getErrorCode());
            System.exit(1);
        }
    }
    public void init() {
        connectToDB();
    }
 
    private void displaySQLErrors(SQLException e) {
        errorText.append("SQLException: " + e.getMessage() + "\n");
        errorText.append("SQLState:     " + e.getSQLState() + "\n");
        errorText.append("VendorError:  " + e.getErrorCode() + "\n");
    }
}

Решение задачи: «Панель вкладок объектов JFrame»

textual
Листинг программы
public class mainWindow extends JFrame {
 
    static int i = 0;
 
    public mainWindow() {
 
        super("Select table");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
        Font font = new Font("Verdana", Font.PLAIN, 10);
        final JTabbedPane tabbedPane = new JTabbedPane();
        tabbedPane.setFont(font);
 
        JPanel content = new JPanel();
        content.setLayout(new BorderLayout());
 
        JPanel buttons = new JPanel();
        content.add(buttons, BorderLayout.NORTH);
        //---------------------------------------
        ClientsTable client = new ClientsTable();
        client.add(client.second);
        client.add(client.third);
        client.add(client.jScrollPane);
        tabbedPane.add("Clients",client);
        //----------------------------------------
        ProviderTable providerTable = new ProviderTable();
        providerTable.add(providerTable.second);
        providerTable.add(providerTable.third);
        providerTable.add(providerTable.jScrollPane);
        tabbedPane.add("Providers",providerTable);
        //----------------------------------------
        GoodTable goodTable = new GoodTable();
        goodTable.add(goodTable.second);
        goodTable.add(goodTable.third);
        goodTable.add(goodTable.jScrollPane);
        tabbedPane.add("Goods",goodTable);
        //---------------------------------------
        SaleInfoTable saleInfoTable = new SaleInfoTable();
        saleInfoTable.add(saleInfoTable.second);
        saleInfoTable.add(saleInfoTable.third);
        saleInfoTable.add(saleInfoTable.jScrollPane);
        tabbedPane.add("Sales Info",saleInfoTable);
        //----------------------------------------
        StaffTable staffTable = new StaffTable();
        staffTable.add(staffTable.second);
        staffTable.add(staffTable.third);
        staffTable.add(staffTable.jScrollPane);
        tabbedPane.add("Staff",staffTable);
        //---------------------------------------
       
        content.add(tabbedPane, BorderLayout.CENTER);
 
        getContentPane().add(content);
 
        setPreferredSize(new Dimension(500, 700));
        pack();
        setLocationRelativeTo(null);
        setVisible(true);
    }
 
    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JFrame.setDefaultLookAndFeelDecorated(true);
                new mainWindow();
            }
        });
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5