Откройте JPanel на JFrame из Button на другой панели - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь закрыть JPanel поверх моей JFrame.

Теперь я хочу закрыть эту панель, нажав кнопку в верхней части этой панели, и открыть другую панель наодна и та же рамка.

Все мои панели и моя рамка находятся в отдельном классе.

Вот моя идея:

JFrame Класс

public MainFrame() throws IOException {
        InitializeStartScreen();

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setExtendedState(JFrame.MAXIMIZED_BOTH);
        this.setLocationRelativeTo(null);
        this.setIconImage(FrameTopIcon.getImage());
        this.setTitle("test");
        this.setVisible(true);
}

private void InitializeStartScreen() {
    StartPanel startPNL = new StartPanel();
    this.add(startPNL);
   // pack();
}

public static void main(String args[]) throws IOException {
    try {
        new MainFrame();
    }
    catch (IOException e) {
        throw  e;
    }
}

JPanel Класс

import javax.swing.*;
import java.awt.*;

public class StartPanel extends JPanel {
private LabelButtonCategory Button1         = new LabelButtonCategory("test");

public StartPanel() {
    this.setLayout(new GridBagLayout());

    InitializeLabelButtons();       

    this.setBackground(backgroundColor);
    this.add(gridPanel);
    this.setVisible(true);
}

    private void InitializeLabelButtons() {
         button1Panel.setBackground(backgroundColor);
         ImageIcon iconBtn1 = new ImageIcon("./src/images/CreateBill.png");
         Button1.setIcon(iconBtn1);
         Button1.addMouseListener(new java.awt.event.MouseAdapter() {
         public void mouseClicked(java.awt.event.MouseEvent evt) {
            Button1MouseClicked(evt);
         }
         public void mouseEntered(java.awt.event.MouseEvent evt) {
            Button1MouseEntered(evt);
         }
         public void mouseExited(java.awt.event.MouseEvent evt) {
            Button1MouseExited(evt);
         }
         });
        button1Panel.add(Button1);
        gridPanel.add(button1Panel);

   private void Button1MouseClicked(java.awt.event.MouseEvent evt) {
      // CLOSE THIS PANEL AND OPEN ANOTHER PANEL ON FRAME
   }
...