- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 netbeans
在 java
中创建了 MDI
(多文档界面),其中我有两个 jbuttons 和一个 jdesktoppane 所以当点击两个按钮然后两个 jinternalframes 在同一个 jdesktoppane 中打开,所以我想如何在 jdesktoppane
中 打开新的 jinternalframe
时 关闭以前的 jinternalframe
?
检查快照以更好地理解我的问题我想要什么...
第一个jButton代码:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try
{
tst t = new tst();
JInternalFrame internalFrame1 = new JInternalFrame("Test Window1");
internalFrame1.add(t.getContentPane());
internalFrame1.pack();
internalFrame1.setVisible(true);
q.add(internalFrame1);
internalFrame1.setClosable(true);
BasicInternalFrameUI ui = (BasicInternalFrameUI)internalFrame1.getUI();
Container north = (Container)ui.getNorthPane();
north.remove(0);
north.validate();
north.repaint();
for(MouseListener listener : ((javax.swing.plaf.basic.BasicInternalFrameUI) internalFrame1.getUI()).getNorthPane().getMouseListeners()){
((javax.swing.plaf.basic.BasicInternalFrameUI) internalFrame1.getUI()).getNorthPane().removeMouseListener(listener);
}
internalFrame1.setSelected(true);
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, ex);
}
}
第二个按钮代码:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
try
{
zxy z = new zxy();
JInternalFrame internalFrame = new JInternalFrame("Test Window2");
internalFrame.add(z.getContentPane());
internalFrame.pack();
internalFrame.setSize(570,420);
internalFrame.setVisible(true);
q.add(internalFrame);
internalFrame.setClosable(true);
BasicInternalFrameUI ui = (BasicInternalFrameUI)internalFrame.getUI();
Container north = (Container)ui.getNorthPane();
north.remove(0);
north.validate();
north.repaint();
for(MouseListener listener : ((javax.swing.plaf.basic.BasicInternalFrameUI) internalFrame.getUI()).getNorthPane().getMouseListeners()){
((javax.swing.plaf.basic.BasicInternalFrameUI) internalFrame.getUI()).getNorthPane().removeMouseListener(listener);
}
internalFrame.setSelected(true);
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, ex);
}
}
最佳答案
只需在 JInternalFrame
实例上调用 dispose()
。
为此,您需要将 JInternalFrame
声明移出该方法,以便我们可以检查该实例是否不是 null
(因此存在一个现有实例然后在创建新实例之前在实例上调用 dispose()
:
JInternalFrame internalFrame1;
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try
{
if(internalFrame1 !=null) {//make sure its not null
internalFrame1.dispose();//close the previos internalframe
}
tst t = new tst();
internalFrame1 = new JInternalFrame("Test Window1"); //create new instance of internal frame
internalFrame1.add(t.getContentPane());
internalFrame1.pack();
internalFrame1.setVisible(true);
q.add(internalFrame1);
internalFrame1.setClosable(true);
BasicInternalFrameUI ui = (BasicInternalFrameUI)internalFrame1.getUI();
Container north = (Container)ui.getNorthPane();
north.remove(0);
north.validate();
north.repaint();
for(MouseListener listener : ((javax.swing.plaf.basic.BasicInternalFrameUI) internalFrame1.getUI()).getNorthPane().getMouseListeners()){
((javax.swing.plaf.basic.BasicInternalFrameUI) internalFrame1.getUI()).getNorthPane().removeMouseListener(listener);
}
internalFrame1.setSelected(true);
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, ex);
}
}
关于java - 在 jDesktopPane 中打开新的 jInternalFrame 时如何关闭以前的 jInternalFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13825120/
任何人都可以帮助如何将值从一个 jInternalFrame1 传递到另一个 jInternalFrame2?我无法在 jInternalFrame2 中创建 jInternalFrame1 的对
我有 2 个 JInternalFrames,每个 JInternalFrames 包含一个 JPanel。一个 JPanel(源)更新其 GUI 和一些数据以响应鼠标事件。另一个 JPanel(目标
有可能吗?从另一个 JInternalFrame 调用 JInternalFrame ??如果是这样怎么办? 我花了好几个小时寻找答案..之前发现一些问题.. 在这里How to manage a J
我有一个包含这段代码的 JDesktopPane。 public class Menu extends JFrame implements ActionListener{ /** * Creates
这是我的源代码。我无法将我的 JInternalframe 放到前面。我已经尝试了很多代码,但没有任何效果。 private void jMenuItem3ActionPerformed(ja
在下面的 SSCCE 中,您可以看到,如果最大化 JInternalFrame 之一,则会同时最大化它们。这只(AFAIK)发生在“Windows”LookAndFeel 中(如果省略 LookAnd
我在桌面 Pane 内有一个 JInternalframe (tab_items)。每当用户单击 tab_items 中的弹出菜单时,我想在同一桌面 Pane 中打开另一个 JInternalfram
例如: 当JButton1点击JInternalFrame1时在JDesktopPane上显示当JButton2点击JInternalFrame1关闭时,JInternalFrame2在JDeskto
我正在创建一个非常简单的程序。我创建了这个类:MainJframeClass、JDesktopPaneClass、JinternalFrameClass1 和 JinternalFrameClass2
在我的应用程序中,我尝试在实现 MigLayout 的单个 JDesktopPane 中打开一个 JInternalFrame 覆盖另一个 JInternalFrame > 但它在第一个内部框架旁边显
我已经阅读了很多关于 Java 中的构造函数的文章,并在 stackoverflow 中搜索了相关问题,但我仍然对我的程序如何从 jinternalframe1 到 jinternalframe2 获
我使用 netbeans 在 java 中创建了 MDI(多文档界面),其中我有两个 jbuttons 和一个 jdesktoppane 所以当点击两个按钮然后两个 jinternalframes 在
我从 https://stackoverflow.com/a/6868039/2240900 得到的这段代码 how to add the internal2 to desktoppane1 usin
您好,我需要一个示例程序,其中当我最大化 JInternalFrame 时,JFrame 的 JMenuBar 应该设置在 JInternalFrame 上当我再次最小化 JInternalFrame
我创建了一个应用程序,其中有两个标题为 的选项卡选项卡 Pane 1 和 选项卡 Pane 2 .在一个标签正文中 选项卡 Pane 1 包含 JInternalFrame其中有一个搜索按钮。单击按钮
我想在 jFrame 中的桌面 Pane 上显示 jInternalFrame1。jInternalFrame1 包含一个按钮,用于通过删除 jInternalFrame1 在桌面 Pane 上显示
我在网上看到一个JInternalFrame的例子,它是这样写的: public class AddEntry extends JInternalFrame 当我尝试在 Netbeans 中创建 JI
下面的“代码部分 1”用于在 MDI 应用程序中从 menuItem 调用 UcakListesi(JinternalFrame) 没有问题。 我想使用相同的代码从另一个 JinternalFrame
我打算在全屏模式下使用 JInternalFrame 作为模态 JDialog,但是,当它被调用时当前没有显示。我需要将它添加到某个容器中吗?我尝试将它添加到 JOptionPane.showInte
我正在处理与此错误相关的问题,我认为:DefaultDesktopManager does not handle InternalFrame state changes as expected. 我有
我是一名优秀的程序员,十分优秀!