gpt4 book ai didi

java - 在 netbeans 中的桌面 Pane 上显示来自另一个 jinternalFrame 的 jInternalFrame

转载 作者:行者123 更新时间:2023-12-01 13:34:54 30 4
gpt4 key购买 nike

我想在 jFrame 中的桌面 Pane 上显示 jInternalFrame1。jInternalFrame1 包含一个按钮,用于通过删除 jInternalFrame1 在桌面 Pane 上显示 jInternalFrame2。

公共(public)类main扩展javax.swing.JFrame{

a aa=new a();//jInternalFrame1
public main() {
initComponents();
jDesktopPane1.add(aa);
aa.setVisible(true);
}
public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new main().setVisible(true);
}
});
}

私有(private)javax.swing.JDesktopPane jDesktopPane1; }

jInternalFrame1中按钮下的代码;

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
b bb=new b();//jInternalFrame2
this.dispose();
bb.setVisible(true);
}

但是这段代码没有显示jInternalFrame2。我已经看到了很多解决方案。但是我不明白如何将它们添加到桌面 Pane 中。抱歉我的英语不好。谢谢

最佳答案

您忘记将 bb 添加到 jDesktpPane1。为此,您需要将 JDesktopPane 参数作为 jInternalFrame1 中的参数。然后使用该 JDesktopPane 添加第二个。我整理了一个简单的测试运行。

来自MainFrame的代码

private void jMenuItem1ActionPerformed(ActionEvent evt) {                                           
IFrameOne iFrame1 = new IFrameOne(jDesktopPane1);
jDesktopPane1.add(iFrame1);
iFrame1.setVisible(true);
}

代码来自IFrmaeOne

JDesktopPane desktop;
public IFrameOne(JDesktopPane desktop) {
initComponents();
this.desktop = desktop;
}
...
private void jButton1ActionPerformed(ActionEvent evt) {
IFrameTwo iFrameTwo = new IFrameTwo();
desktop.add(iFrameTwo);
this.dispose();
iFrameTwo.setVisible(true);
}

IFrameTwo 只是一个空的 JInternalFrame 类。这对我有用。也是使用 GUI Builder 创建的

<小时/>

更新

"sir actually I tried cardLayout.But I cant add the cards using navigator (add from palette).For me coding is difficult.So I used drag and drop.Can you tell Why its not possible to add the cards?Yesterday I added.But today cant"

如果您想对 JInternalFrame 使用 CardLayout,请执行以下步骤

  1. 您可以创建JPanel 表单。因此,创建其中两个。

  2. 在您的 JInternalFrame 中拖放一个 JPanel 并将其扩展到框架的大小。

  3. 您需要自己手动编写 CardLayout 代码。但它在构造函数中

    public MyInternalFrame() {
    initComponents();
    CardLayout cardlayout = new CardLayout();
    jPanel1.setLayout(cardLayout);
    }
  4. 然后添加您在第一步中创建的两个 JPanel 表单。

    jPanel1.add(new PanelForm1(), "panel1");
    jPanel1.add(new PanelForm2(), "panel2");
  5. 然后在您的 actionPerformed 中您可以在面板之间切换

    public void jButton1ActionPerformed(java.awt.events.ActionEvent e) {
    cardLayout.show(jPanel1, "panel2");
    }
  6. 如果需要,您可以来回切换。

关于java - 在 netbeans 中的桌面 Pane 上显示来自另一个 jinternalFrame 的 jInternalFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21362642/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com