组件的 Java Applet GUI 问题

Posted

技术标签:

【中文标题】组件的 Java Applet GUI 问题【英文标题】:Java Applet GUI problem with components 【发布时间】:2011-03-25 16:44:35 【问题描述】:

我在将 GUI 组件放入小程序时遇到了问题。我正在寻找一种使用绝对坐标和大小来放置它的方法。 这是我所做的:

public class app extends JApplet  


public void init() 
    setSize(450,450);
    try 
        javax.swing.SwingUtilities.invokeAndWait(new Runnable() 
            public void run() 
                createGUI();
            
        );
     catch (Exception e) 
        System.err.println("Creation of swing components not finished");
    




public void createGUI() 
    JMenuBar menubar = new JMenuBar();
    JMenu menuFile = new JMenu("File");
    JMenuItem openItem = new JMenuItem("Open");
    menuFile.add(openItem);
    menubar.add(menuFile);
    setJMenuBar(menubar);


    app_buttons ab = new app_buttons();
    add(ab.button1);
    add(ab.button2);
    add(ab.button3);








public class app_buttons 
    public JButton button1;
    public JButton button2;
    public JButton button3;

    public apptextbox() 
       button1 = new JButton("1");
               button1.setBounds(20,20,20,20);
       button2 = new JButton("2");
               button2.setBounds(60,60,20,20);
       button3 = new JButton("3");
               button3.setBounds(90,90,20,20);

    
 

我不知道该怎么做,要么组件不显示,要么它们适合整个小程序区域。我想为我的所有按钮、文本区域等指定它们的大小以及它们的确切放置位置。我看过网上的教程,但它不起作用,组件没有显示。

我也不希望按钮、文本区域等调整大小。在我指出它们的地方,一切都是静态的。例如,当创建一个大小为 (15,35) 的 JTextArea 时;它似乎并不重要,因为它无论如何都会调整大小。

谢谢

【问题讨论】:

“我正在寻找一种使用绝对坐标和大小来放置它的方法。”这就是问题开始的地方,并困扰着小程序直到解决。解决方法是使用标准布局在运行时完成定位和调整 GUI 元素的繁重工作。有关详细信息,请参阅 Java 教程中的 Using Layout Managers。 【参考方案1】:

使用

setLayout(null);

在您的init() 中为您的小程序。

【讨论】:

按钮效果很好!但是,您如何处理 JTextArea 和 JComboBoxes?我试过 setLocation 但组件不可见。如果我使用 setBounds,除非我输入确切的参数,否则不会显示整个文本区域 如果您使用空布局,那么您将完全负责添加到该容器的所有组件的大小和位置,所以是的,您需要使用 setBounds 或等效项。我强烈建议您避免使用空布局和精确定位,而是使用多个嵌套的 JPanel,每个 JPanel 都有自己适当的布局管理器。编辑:我想我是在陈述安德鲁上面已经提出的建议——我支持他的所有想法!

以上是关于组件的 Java Applet GUI 问题的主要内容,如果未能解决你的问题,请参考以下文章

java awt;java applet;java swing分别是啥?他们之间有啥联系和区别?

Java EE开发技术课程第五周(Applet程序组件与AJAX技术)

十. 图形界面(GUI)设计2.框架窗口

将简单的Applet GUI从Swing转换为JavaFX

java 5周 applet

Applet和ajax