组件的 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分别是啥?他们之间有啥联系和区别?