我有class main extends jframe
,它有一个按钮,可以调用/显示另一个扩展的类jdialog
。
如果按钮 fromjdialog
被触发,它将处理该对话框并删除 的所有组件jframe
,然后将其添加到新的jpanel
.
我该怎么办?
这是我的新破代码:
public class mainz extends JFrame{
mainz(){
setVisible(true);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
JToolBar r = new JToolBar();
r.add(Box.createHorizontalGlue());
add(r, BorderLayout.NORTH);
JButton n = new JButton();
r.add(n, BorderLayout.EAST);
n.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae){
show();
}
});
}
public void show(){
dialogz d = new dialogz(this);
d.setVisible(true);
}
public void lastHope(){
getContentPane().removeAll();
getContentPane().validate();
getContentPane().repaint();
}
public static void main (String[]args){
new mainz().setExtendedState(MAXIMIZED_BOTH);
}
}
public class dialogz extends JDialog{
public dialogz(final mainz owner) {
setSize(300, 300);
JButton n = new JButton("execute");
add(n);
final JFrame ew = (JFrame)super.getOwner();// <<
n.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae){
dispose();
//owner.lastHope;
ew.removeAll();// <<
ew.validate();// <<
ew.repaint();// <<
}
});
}
void yes(){
getOwner().removeAll();
getOwner().validate();
getOwner().repaint();
}
}
我知道我可以阻止我的main
课程扩展jframe
,而是从 main 调用它,但我想这样做......
请帮帮我...TT
对不起我的英语,我来自遥远的国家〜,〜”
更新:错误是
java.lang.ClassCastException:javax.swing.SwingUtilities$SharedOwnerFrame 无法转换为 javax.swing.JFrame
它将通过删除包含 // << 然后调用 lastHope(); 的行来完成
但我认为还有另一种方法可以让现有的 jframe 全部删除(通过先转换它或其他东西〜,〜“)