java关闭窗口按钮_java-单击按钮关闭窗口

你好,

我正在使用Java Swing,并且想在单击按钮时关闭一个窗口.我不知道使用动作侦听器作为执行此操作的最佳方法,但是目前我正在编译错误,因此它一定是不正确的.

这是我的代码:

public class assignment2

{

public static void main(String[] args){

MyFrame f = new MyFrame(); //open the inital gui interface

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setVisible(true); //set it visibile

}

}

//this is the initial gui screen, presenting user with options for which action they would like to take

//al actions for the gui are commenced here

class MyFrame extends JFrame{

public MyFrame(){

buttonPanel1 p = new buttonPanel1(); // add the buttons for this frame

add(p);

setSize(800,600);

setTitle("Travel Console");

setLocationRelativeTo(null);

}

}

class buttonPanel1 extends JPanel{

public buttonPanel1(){

//create buttons

JButton addItem = new JButton("Add an Item");

JButton deleteItem = new JButton("Delete an item");

JButton listItem = new JButton("List items");

JButton editItem = new JButton("Edit an item");

JButton bookFlight = new JButton("Book a flight");

JButton save = new JButton("Save data");

JButton load = new JButton("Load data");

JButton exit = new JButton("Exit");

//set layout manager for button panel

setLayout(new GridLayout(8,1,1,5));

//create buttons

add(addItem);

add(deleteItem);

add(listItem);

add(editItem);

add(bookFlight);

add(load);

add(save);

add(exit);

addItemListener addList = new addItemListener();

addItem.addActionListener(addList);

exitListener exitList = new exitListener();

exit.addActionListener(exitList);

}

}

//listener classes for the inital gui page. each button has its own actionlistener which launches the selected option

class addItemListener implements ActionListener{

public void actionPerformed(ActionEvent event){ //launch add item

addItemFrame addItem = new addItemFrame();

addItem.setDefaultCloseOperation(addItemFrame.DISPOSE_ON_CLOSE);

addItem.setVisible(true);

}

}

class addItemFrame extends JFrame{

public addItemFrame(){

addItemButtonPanel b = new addItemButtonPanel(); // add the buttons for this frame

add(b);

setSize(800,500);

setTitle("Add an Item");

setLocationRelativeTo(null);

}

}

//part of addItemFrame class

class addItemButtonPanel extends JPanel{

public addItemButtonPanel(){

JLabel selectItem = new JLabel("Select which item you would like to add:");

JButton newCustomer = new JButton("Customer");

JButton newflight = new JButton("Flight");

JButton newMovie = new JButton("Movie");

JButton goBack = new JButton("Return to main menu");

setLayout(new GridLayout(5,1,1,5));

add(selectItem);

add(newCustomer);

add(newflight);

add(newMovie);

add(goBack);

goBackListener gbList = new goBackListener();

goBack.addActionListener(gbList);

}

}

//listener classes for the addItemFrame

class goBackListener implements ActionListener{

public void actionPerformed(ActionEvent event){

addItemFrame.dispose();

}

}

我遇到的问题是最后一个列出的goBackListener类,它实际上仅关闭当前窗口,因此再次显示主菜单屏幕.我需要对在addItemListener类中创建的addItemFrame的静态引用.但是将其更改为静态是无效的修饰符吗?

我该如何解决?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java窗口跳转可以通过创建多个窗口,并在需要跳转时隐藏/显示窗口来实现。 以下是一个简单的示例代码,其中包含两个窗口,一个主窗口和一个子窗口,并在主窗口上添加了一个按钮,用于跳转到子窗口: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class WindowJumpExample { public static void main(String[] args) { JFrame mainFrame = new JFrame("主窗口"); JButton jumpButton = new JButton("跳转到子窗口"); // 添加按钮监听器 jumpButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 创建子窗口 JFrame childFrame = new JFrame("子窗口"); childFrame.setSize(200, 200); childFrame.setLocationRelativeTo(null); childFrame.setVisible(true); // 隐藏主窗口 mainFrame.setVisible(false); // 添加子窗口关闭监听器 childFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { // 显示主窗口 mainFrame.setVisible(true); } }); } }); mainFrame.getContentPane().add(jumpButton); mainFrame.setSize(200, 200); mainFrame.setLocationRelativeTo(null); mainFrame.setVisible(true); } } ``` 在这个示例代码中,我们使用`JFrame`类创建了两个窗口,一个主窗口和一个子窗口。当用户单击窗口上的按钮时,会创建并显示子窗口,并隐藏主窗口。当用户关闭窗口时,会显示主窗口。 这个示例代码只是一个最基本的窗口跳转示例,你可以根据你的需要进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值