【发布时间】:2013-11-09 22:04:48
【问题描述】:
我有一个在 Java Swing 中运行的应用程序,但似乎无法转换为 Applet。基本上Applet上显示了四个按钮,我希望其中一个清除屏幕然后绘制一个新界面(当然,我要为其他按钮添加东西,但我卡在这里了)。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.JApplet; //import swing applet interface
import java.util.Hashtable;
public class TopMenu extends JApplet{
private JPanel panel = new JPanel();
public void init(){
mainMenu();
}
public void mainMenu() {
// create buttons
panel.setLayout(new GridLayout(2, 2));
JButton collectButton = new JButton("Collect data");
JButton uploadButton = new JButton("Upload");
JButton downloadButton = new JButton("Download");
JButton exploreButton = new JButton("Explore data");
panel.add(collectButton);
panel.add(uploadButton);
panel.add(downloadButton);
panel.add(exploreButton);
collectButton.addActionListener(new ActionListener( ) {
public void actionPerformed(ActionEvent e) {
int numberGFish = 400;
//panel.removeAll();
//panel.add(new JLabel("Just to test"), BorderLayout.CENTER);
//panel.revalidate();
//panel.repaint();
}
});
setContentPane(panel);
}
}
在我添加 ActionListener 之前,所有代码都可以正常工作,然后整个事情就变成了空白。它可以编译,但是当我在我的服务器上测试它时,甚至第一个菜单都没有出现,它只是一个空白面板。我尝试在 ActionListener 位中放置大量非常平庸的东西,以确保它们没有问题,但正如您所见,即使只是在其中声明一个数字也行不通。
最初我实际上在另一个方法上调用了 Listener 位,然后该方法执行了其他所有操作,但这也不起作用,我放弃了它,因为我认为这可能是问题所在。
我确信这很简单,但我现在已经投入了很多小时,而且我真的已经没有什么想法可以测试了。非常感谢您的建议。
【问题讨论】:
-
对我来说完全没问题。我使用了您发布的确切代码,甚至使用了注释代码,并且按钮工作正常。
-
天哪,真奇怪。我将它托管在我的服务器上 chrisbeeley.net/website/java-demo.html 这是一个 Ubuntu 12.04 LTS 服务器,我在 Linux Mint 上使用 Chrome 来测试它。正如我所说,它在删除 ActionListener 后渲染得很好,但在添加时是空白的。我的代码实际上工作得多么奇怪。谢谢你告诉我,我会在另一个浏览器上试试。如果有人确实单击该链接,我将非常感激知道它是否有效