我的程序在屏幕上显示一些窗口(jframe和jpanel)和一个主框架。当用户选择删除主框架中其中一个窗口的选项时,应关闭所选窗口。
我把那些窗户排成一排。当用户选择要关闭的窗口时,它将从数组中删除该jframe和它的jpanel,它应该关闭该jframe,但不会。没有显示任何错误,当我再次运行该程序时,一切都与预期一样:删除的帧不会显示。我的结论是,关闭jframe时,我没有正常工作,程序的其余部分也没有问题。
我试过:
windows[Frame_to_close]. setDefaultCloseAction(windows[Frame_to_close].DISPOSE_ON_CLOSE);
和
windows[Frame_to_close].setVisible(false);
windows[Frame_to_close].dispose();
关闭窗口时我做错了什么吗?有没有其他关闭窗口的方法(Jframe和Jpanel)?
用户将如何选择要关闭的窗口?使用下面的代码,您可以通过按按钮关闭窗口或直接关闭窗口(在这种情况下,框架不会从列表中删除):
private void createManyFrames() {
final JFrame mainFrame = new JFrame("Stack Overflow: closing frames");
mainFrame.setBounds(100, 100, 240, 600);
mainFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
mainFrame.getContentPane().setLayout(new FlowLayout());
final List<JFrame> frames = initializeFrames(Arrays.asList("one", "two", "three"));
for (final JFrame frame : frames) {
final JButton button = new JButton(frame.getTitle());
mainFrame.getContentPane().add(button);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(final ActionEvent e) {
frame.dispose();
frames.remove(frame);
}
});
frame.setVisible(true);
}
mainFrame.setVisible(true);
}
private List<JFrame> initializeFrames(final List<String> frameNames) {
final List<JFrame> frames = new ArrayList<JFrame>();
for (final String frameName : frameNames) {
final JFrame frame = new JFrame(frameName);
frame.setBounds(480, 120 * (1 + frames.size()), 200, 100);
final JPanel panel = new JPanel();
panel.add(new JLabel("Label in panel in frame " + frameName + "."));
frame.getContentPane().add(panel);
frames.add(frame);
}
return frames;
}
问题内容: 我想同时显示两个(或更多) JFrame 。 当我关闭其中一个(使用默认的关闭按钮)时,其他框架仍应可见。 我怎样才能做到这一点? 问题答案: 如果您 不 希望应用程序在a 关闭时终止,请使用 代替 从文档中: (在WindowConstants中定义):不执行任何操作;要求程序处理注册的WindowListener对象的windowClosing方法中的操作。 (在WindowCon
问题内容: 我想知道是否有一种方法,通过单击“ X”,让程序在关闭JFrame之前执行一些代码。该方法仅使用整数。 问题答案: 您可能对使用感兴趣。本教程。
我有JFrame和一个按钮,可以在点击事件时打开一个JPopupMenu。这个JPOppMenu有一个带有按钮的JPanel。这个按钮应该用来处理JPOppMenu。只要JFrame没有最大化,它就会这样做。但是,当JFrame最大化时,它会关闭JFrame本身。 任何有助于解决这一问题的帮助或建议都将不胜感激。 (我正在使用netbeans来开发这个。) 下面是MyJpanel的代码。
正如标题所说,我实际上想知道一个JFrame表单如何知道另一个JFrame表单的windowListening状态。 可能会让人困惑,但我可以澄清一下。 我有一个主JFrame表单,它调用另外两个JFrame表单。因此,每当一个JFrame窗体关闭时,它就会将主JFrame窗体回调到setVisible(true)并将其自身设置为dispose()。 但我想知道彼此的状态。我想要的是: 如果我的第
我有一个带有登录名(JPanel)的JFrame,可以从菜单栏中选择。菜单栏还根据用户角色显示选项。当用户第一次登录创建的JFrame实例时,当我在菜单栏上选择login并在new JFrame上实例化时,我的问题就出现了,因为我显然打开了两个JFrame,我找不到从JPanel隐藏或关闭之前JFrame的方法。在实例化新JFrame或任何其他可能的解决方案之前,有没有办法隐藏/处理所有打开的窗口
我正在做一个实验2D物理的个人项目。现在,我正在尝试设置JFrame,以便它每秒更新60次。但是,当我调用方法开始更新JFrame时,我不能关闭JFrame。但是如果我省略了调用方法的部分,我可以关闭JFrame。这是主要代码: 这是Frame的代码: 如果我不在start()中调用updater(),我可以关闭JFrame。我知道我离开running=true,但它仍然应该关闭,因为这在我的旧计