一.AWT编程
Component作为基类,提供了如下常用的方法来设置组件的大小、位置、可见性等
方法签名 | 方法功能 |
---|---|
setLocation(int x, int y) | 设置组件的位置。 |
setSize(int width, int height) | 设置组件的大小。 |
setBounds(int x, int y, int width, int height) | 同时设置组件的位置、大小。 |
setVisible(Boolean b): | 设置该组件的可见性。 |
Container作为容器根类,提供了如下方法来访问容器中的组件
package One.container.test;
import java.awt.*;
public class text1 {
public static void main(String[] args) {
// 创建一个 Frame 对象,用于显示窗口
Frame frame = new Frame("这是一个测试窗口");
// 设置窗口的位置和大小
frame.setBounds(100, 100, 500, 300);
// 设置窗口可见
frame.setVisible(true);
}
}
方法签名 | 方法功能 |
---|---|
Component add(Component comp) | 向容器中添加其他组件 (该组件既可以是普通组件,也可以 是容器) , 并返回被添加的组件 。 |
Component getComponentAt(int x, int y): | 返回指定点的组件 。 |
int getComponentCount(): | 返回该容器内组件的数量 。 |
Component[] getComponents(): | 返回该容器内的所有组件 。 |
package One.container.test;
import java.awt.*;
public class text2 {
public static void main(String[] args) {
// 创建一个 Frame 对象,设置标题为 "Panel"
Frame frame = new Frame("Panel");
// 创建一个 Panel 对象
Panel p = new Panel();
// 在 Panel 中添加一个 TextField 对象,文本为 "测试文本"
p.add(new TextField("测试文本"));
// 在 Panel 中添加一个 Button 对象,文本为 "测试按钮"
p.add(new Button("测试按钮"));
// 将 Panel 添加到 Frame 中
frame.add(p);
// 设置 Frame 的位置和大小
frame.setBounds(100, 100, 500, 300);
// 将 Frame 设置为可见
frame.setVisible(true);
}
}
这里需要注意编码问题
由于IDEA默认使用utf-8进行编码,但是当前我们执行代码是在windows系统上,而windows操作系统的默认编码是gbk,所以会乱码,如果出现了乱码,那么只需要在运行当前代码前,设置一个jvm参数 -Dfile.encoding=gbk即可。
修改编码:
修改后中文正常显示
package One.container.test;
import java.awt.*;
public class text3 {
public static void main(String[] args) {
// 创建一个 Frame 对象,用于创建窗口
Frame frame = new Frame("ScrollPaneDemo");
// 创建一个 ScrollPane 对象,用于实现滚动功能
ScrollPane sp = new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS);
// 向 ScrollPane 中添加一个 TextField 对象,用于显示测试文本
sp.add(new TextField("测试文本"));
// 设置窗口的位置和大小
frame.setBounds(100, 100, 500, 300);
// 将 ScrollPane 添加到窗口中
frame.add(sp);
// 设置窗口可见
frame.setVisible(true);
}
}
package One.container;
import java.awt.*;
public class a05BorderLayout {
public static void main(String[] args) {
// 创建一个 Frame 对象并设置标题为 "BorderLayout"
Frame frame = new Frame("BorderLayout");
// 创建一个 BorderLayout 对象,并设置布局参数为 30 和 10
frame.setLayout(new BorderLayout(30,10));
// 将一个 Button 对象添加到 Frame 的北侧
frame.add(new Button("北侧按钮"),BorderLayout.NORTH);
// 将一个 Button 对象添加到 Frame 的南侧
frame.add(new Button("南侧按钮"),BorderLayout.SOUTH);
// 将一个 Button 对象添加到 Frame 的东侧
frame.add(new Button("东侧按钮"),BorderLayout.EAST);
// 将一个 Button 对象添加到 Frame 的西侧
frame.add(new Button("西侧按钮"),BorderLayout.WEST);
// 将一个 Button 对象添加到 Frame 的中间
frame.add(new Button("中间按钮"),BorderLayout.CENTER);
// 对窗口进行打包大小调整
frame.pack();
// 设置窗口可见
frame.setVisible(true);
}
}
package One.container;
import java.awt.*;
public class a06BorderLayout {
public static void main(String[] args) {
// 创建一个 Frame 对象并设置标题为 "BorderLayout"
Frame frame = new Frame("BorderLayout");
// 创建一个 BorderLayout 对象,并设置布局参数为 30 和 10
frame.setLayout(new BorderLayout(30,10));
// 将一个 Button 对象添加到 Frame 的北侧
frame.add(new Button("北侧按钮"),BorderLayout.NORTH);
// 将一个 Button 对象添加到 Frame 的南侧
frame.add(new Button("南侧按钮"),BorderLayout.SOUTH);
// 创建一个 Panel 对象,并将两个 Button 对象和一个 TextField 对象添加到 Panel 中
Panel p = new Panel();
p.add(new Button("中间按钮"));
p.add(new TextField("测试文本"));
// 将 Panel 对象添加到 Frame 的中间
frame.add(p);
// 对窗口进行打包大小调整
frame.pack();
// 设置窗口可见
frame.setVisible(true);
}
}
package One.container;
import java.awt.*;
public class a07GridLayout {
public static void main(String[] args) {
// 创建一个 Frame 对象,并设置标题为 "网格布局"
Frame frame = new Frame("网格布局");
// 创建一个 Panel 对象
Panel p = new Panel();
// 在 Panel 中添加一个长度为 30 的 TextField 对象
p.add(new TextField(30));
// 将 Panel 对象添加到 Frame 对象中
frame.add(p);
// 创建一个 Panel 对象,并设置布局为网格布局,每个格子的大小为 3x5,每个格子之间的间距为 4 个单位
Panel p2 = new Panel();
p2.setLayout(new GridLayout(3, 5, 4, 4));
// 循环遍历 0 到 9 的数字
for (int i = 0; i < 10; i++) {
// 在 Panel 中添加一个按钮,显示为数字字符串
p2.add(new Button(i + ""));
}
// 在 Panel 中添加一个按钮,显示为 "+" 字符
p2.add(new Button("+"));
// 在 Panel 中添加一个按钮,显示为 "-" 字符
p2.add(new Button("-"));
// 在 Panel 中添加一个按钮,显示为 "*" 字符
p2.add(new Button("*"));
// 在 Panel 中添加一个按钮,显示为 "/" 字符
p2.add(new Button("/"));
// 在 Panel 中添加一个按钮,显示为 "." 字符
p2.add(new Button("."));
// 将 Panel 对象添加到 Frame 对象中,位于south位置
frame.add(p2, BorderLayout.SOUTH);
// 对 Frame 对象进行打包大小调整
frame.pack();
// 设置 Frame 对象可见
frame.setVisible(true);
}
}