Java 从JFrame中删除带有ActionListener的按钮
基本上,我有一个扩展JFrame的类,我试图让ActionListener在单击另一个按钮后删除一个按钮,它似乎不起作用Java 从JFrame中删除带有ActionListener的按钮,java,swing,Java,Swing,基本上,我有一个扩展JFrame的类,我试图让ActionListener在单击另一个按钮后删除一个按钮,它似乎不起作用 loginButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //Execute when button is pressed Sy
loginButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
//Execute when button is pressed
System.out.println("Registered existing character click...");
getContentPane().remove(loginButton);
frame.remove(newAccountButton);
frame.revalidate();
frame.repaint();
//add(lookUp);
//add(searchButton);
bg.setIcon(rsLgn);
// lookUp.requestFocus();
// setComponentZOrder(searchButton, 0);
// setComponentZOrder(lookUp, 0);
}
});
编辑:目前,该按钮不可见,因此从技术上讲,我不知道它是否被删除,但System.out.println肯定仍在输出“已注册现有角色单击…”的原始消息。这听起来好像你真的想使用CardLayout交换视图。我知道如果这是我的GUI,我想改变GUI在状态改变时的视图,那就是我要做的。嗯。。。。也许我没有想到,因为我已经通过像素位置放置了按钮。。。它是否应该自动删除一个按钮面板,然后添加另一个新按钮?
“…因为我已经通过像素位置放置了按钮”
——一个常见的新手错误。虽然一开始看起来创建复杂Swing GUI的最简单方法是使用空布局和绝对位置放置它们,但您越是这样做,更重要的是,您就越需要维护GUI,您会越来越清楚地看到,这绝对是创建GUI最糟糕的方式,因为这样创建的GUI是死板的,很难更改。更好的方法是使用布局管理器来帮助定位和调整组件的大小。问题是,我想使用图片作为“背景”,并将按钮放置在背景中的按钮上,我看到的唯一正确的方法是使用绝对定位…另外,我尝试添加CardLayout,但是由于某些原因,我无法将JPanel的大小/边界设置为帧的大小,我尝试使用panel.setBounds(this.getBounds())代码>但它不起作用。。。