java - 如何在java awt中的框架中添加按钮和面板

标签 java button awt

如何编写 java awt 程序,其中第一行包含文本字段,接下来的 5 行每行包含 5 个按钮,接下来的 4 行每行包含 4 个按钮。以及如何设置这些按钮的大小和它们之间的空间?我已经尝试使用 3 个面板进行此操作,但无法正常工作。

(我制作的示例程序,但没有显示任何内容)

`import java.awt.*;
class cal extends Frame {
cal(){
Panel p1=new Panel();
Panel p2=new Panel();
Panel p3=new Panel();
p1.setLayout(new GridLayout(2,3));
p2.setLayout(new GridLayout(2,2));
TextField k=new TextField("0",20);
Button a=new Button("HI");
Button b=new Button("HI");
Button c=new Button("HI");
Button d=new Button("HI");
Button e=new Button("HI");
Button l=new Button("Hello");
Button g=new Button("Hello");
Button h=new Button("Hello");
Button i=new Button("Hello");
p1.add(a);
p1.add(b);
p1.add(c);
p1.add(d);
p1.add(e);
p2.add(l);
p2.add(g);
p2.add(h);
p2.add(i);
Frame f=new Frame();
f.setSize(500,500);
f.add(p3);
f.add(p1);
f.add(p2);

show();
}
public static void main(String[] args){
new cal();}
}`

最佳答案

  1. 不要为您的 GUI 使用 AWT 库组件,而是使用 Swing 库的组件,例如 JFrame、JPanel、JButton...
  2. 要在顶层窗口中查看某些内容,您必须将组件添加到显示 顶层窗口,而您永远不会这样做。换句话说,您需要通过 add(...) 方法将您的面板(应该是 JPanels)添加到主类中。您将它们添加到您称为 f 的 Frame 对象中,但您显示的是代表当前类的 Frame,即 this —— 两个完全不同的对象。
  3. 让您的代码正常工作的一种方法是让您的类扩展顶级窗口,而是创建一个顶级窗口(正如您正在做的那样)并在添加组件后显示它(因为你没有这样做)。
  4. 避免调用已弃用的方法,例如 show()。这样做可能很危险,您的编译器应该就此向您发出警告,您应该注意警告。
  5. 了解布局管理器并使用它们。您目前正在使用它们,因为您的组件带有默认布局管理器,但没有正确使用它们。
  6. 最重要的是,阅读您可以找到的教程 here ,因为你无法猜测这些东西。
  7. 不要在这里发布所有左对齐的代码,因为它很难阅读。

关于java - 如何在java awt中的框架中添加按钮和面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23032879/

相关文章:

java - 反编译的 Java 类产生不同的输出

java - 以单例模式创建对象时,引用返回什么

xaml - 如何在 Xamarin 中删除从 ListView 中选择的项目

c# - 最初禁用的按钮在通过 Javascript 启用后不会回发

Python 3 和 tkinter 通过单击按钮打开新窗口

java - 如何使文本在对象中居中并允许其随对象移动

java - 垂直布局内边距

java - 捕获整个 Windows 声音输出?

java - 在 JFrame 上绘制 BufferedImage 并写入文件

java - 如何将java应用程序发送到系统托盘?