java jpanel隐藏_如何隐藏当前的JPanel并使用Java中的按钮显示一个新的JPanel?

不幸的是,我必须在该程序中使用多个窗口,而且我认为CardLayout不能正常工作,因为在不同布局之间我无法保持任何按钮不变。因此,我尝试编写一个按钮以隐藏当前的JPanel(thePanel)并显示一个新的JPanel(thePlacebo)。

我试图在这样的ActionListener中隐藏thePanel:

frame.getContentPane().remove(thePanel);

我以为这可以用,但是只要按一下按钮,它就会冻结程序。

这是上下文代码的一部分:

public class Reflexology1 extends JFrame{

JButton button1, button2;

JButton movingButton;

JTextArea textArea1;

int buttonAClicked, buttonDClicked;

private long _openTime = 0;

private long _closeTime = 0;

JPanel thePanel = new JPanel();

JPanel thePlacebo = new JPanel();

final JFrame frame = new JFrame("Reflexology");

public static void main(String[] args){

new Reflexology1();

}

public Reflexology1(){

frame.setSize(600, 475);

frame.setLocationRelativeTo(null);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setTitle("Reflexology 1.0");

frame.setResizable(false);

button1 = new JButton("Accept");

button2 = new JButton("Decline");

movingButton = new JButton("Click Me");

ListenForAcceptButton lForAButton = new ListenForAcceptButton();

ListenForDeclineButton lForDButton = new ListenForDeclineButton();

button1.addActionListener(lForAButton);

button2.addActionListener(lForDButton);

//movingButton.addActionListener(lForMButton);

JTextArea textArea1 = new JTextArea(24, 50);

textArea1.setText("Tracking Events\n");

textArea1.setLineWrap(true);

textArea1.setWrapStyleWord(true);

textArea1.setSize(15, 50);

FileReader reader = null;

try {

reader = new FileReader("EULA.txt");

textArea1.read(reader, "EULA.txt");

} catch (IOException exception) {

System.err.println("Problem loading file");

exception.printStackTrace();

} finally {

if (reader != null) {

try {

reader.close();

} catch (IOException exception) {

System.err.println("Error closing reader");

exception.printStackTrace();

}

}

}

JScrollPane scrollBar1 = new JScrollPane(textArea1, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

AdjustmentListener listener = new MyAdjustmentListener();

thePanel.add(scrollBar1);

thePanel.add(button1);

thePanel.add(button2);

thePlacebo.add(movingButton);

frame.add(thePanel);

ListenForWindow lForWindow = new ListenForWindow();

frame.addWindowListener(lForWindow);

frame.setVisible(true);

}

// Implement listeners

private class ListenForAcceptButton implements ActionListener{

public void actionPerformed(ActionEvent e){

if (e.getSource() == button1){

Calendar ClCDateTime = Calendar.getInstance();

System.out.println(ClCDateTime.getTimeInMillis() - _openTime);

_closeTime = ClCDateTime.getTimeInMillis() - _openTime;

frame.getContentPane().remove(thePanel);

}

}

}

有人知道我可能做错了吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值