gpt4 book ai didi

java - Applet 可以工作,但 Swing 组件不会出现!

转载 作者:行者123 更新时间:2023-12-01 19:25:56 25 4
gpt4 key购买 nike

所以我正在创建这个小程序,我想在其中包含完整的 Swing 组件。我已经查看了所有文档,我已经制作了小程序,如果我重写 update(Graphics g) 方法,但只需将组件添加到 中,我就可以在其中显示一些内容>contentPane 似乎没有这样做!我做错了什么?

import javax.swing.JApplet;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import org.steephill.kindlab.LabApp;

import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;

public class ClientApplet extends JApplet {

ClientTreePanel treePanel;

public void destroy() {
// Put your code here
}

public String getAppletInfo() {
return "KindLab Client Applet";
}

public void init() {

try {
LabApp.initializeHibernate();
if (!LabApp.authenticate("user", "pass")) {

JOptionPane.showMessageDialog(this, "authentication failed");
} else {

try {
javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
createGUI();
}
});
} catch (Exception e) {
System.err.println("createGUI didn't successfully complete");
}

}
} catch (Exception ex) {
JOptionPane.showMessageDialog(this, "error intitializing applet\r\n" + ex.getMessage());
}
}

protected void createGUI() {

treePanel = new ClientTreePanel();
treePanel.setVisible(true);
getContentPane().add(new JLabel("TESTING!"));
getContentPane().add(treePanel);

System.out.println("THIS DOES RUN");
}

public void start() {
// Put your code here
}

public void stop() {
// Put your code here
}

/* if I uncomment this method, it WORKS and I get "Hello World!"
public void paint(Graphics g) {
super.paint(g);
g.drawString("Hello World!",25,25);
}
*/
}

请帮忙!谢谢你!约书亚

最佳答案

我在这里发现您的代码有几个问题:

  1. 在 GUI 设置结束时不调用 pack()
  2. 您将多个组件添加到小程序的内容 Pane 中,但没有任何布局限制。默认内容 Pane 通常是 BorderLayout,因此添加两个没有任何约束的组件可能只会将 ClientTreePanel 放在顶部。

由于您不调用 pack(),因此不会计算布局,对于您的情况,这可能会导致不显示任何内容(您没有提供 ClientTreePanel 的代码)。

关于java - Applet 可以工作,但 Swing 组件不会出现!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/982324/

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