java创建一个含九个按钮的窗口,点击不同的按钮可以放置不同的图片,
时间: 2023-05-23 21:06:28 浏览: 175
建立窗口的Frame类-JAVA图形界面
A:
可以按照以下步骤创建一个含九个按钮的窗口并响应按钮点击事件来放置不同的图片:
1. 创建一个 JFrame 类型的窗口对象
```java
JFrame frame = new JFrame("放置图片的窗口");
```
2. 设置窗口大小、位置、关闭方式等属性,并添加窗口关闭事件的监听器
```java
frame.setSize(600, 400); // 设置窗口大小
frame.setLocationRelativeTo(null); // 设置窗口初始位置为居中
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 窗口关闭时退出程序
frame.addWindowListener(new WindowAdapter() { // 添加窗口关闭事件的监听器
@Override
public void windowClosing(WindowEvent e) {
// 窗口关闭时执行的代码
}
});
```
3. 创建九个 JButton 类型的按钮对象,并配置按钮的位置、大小、文本、图标等属性
```java
JButton btn1 = new JButton("按钮1");
btn1.setBounds(20, 20, 100, 50); // 按钮1在窗口中的位置和大小
btn1.setIcon(new ImageIcon("图片1的文件路径")); // 按钮1的图标
// 创建其他的八个按钮对象,以此类推
```
4. 为每个按钮添加点击事件的监听器,实现在面板中放置对应的图片
```java
btn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JLabel label = new JLabel(new ImageIcon("图片1的文件路径")); // 创建一个带图标的标签对象
label.setBounds(150, 20, 400, 300); // 标签在窗口中的位置和大小
frame.getContentPane().add(label); // 将标签添加到窗口的内容面板中
frame.getContentPane().repaint(); // 刷新窗口内容,使新添加的标签可见
}
});
// 为其他八个按钮添加对应的点击事件监听器,以此类推
```
5. 将九个按钮添加到窗口的内容面板中,并设置面板的布局方式为 null,以允许自定义按钮的位置和大小
```java
frame.getContentPane().setLayout(null); // 设置窗口内容面板的布局方式为 null
frame.getContentPane().add(btn1); // 将九个按钮添加到窗口的内容面板中,以此类推
// 将其他八个按钮添加到窗口的内容面板中,以此类推
```
6. 最后,显示窗口
```java
frame.setVisible(true); // 显示窗口
```
完整的代码如下:
```java
import javax.swing.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.*;
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame("放置图片的窗口"); // 创建窗口对象
frame.setSize(600, 400); // 设置窗口大小
frame.setLocationRelativeTo(null); // 设置窗口初始位置为居中
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 窗口关闭时退出程序
frame.addWindowListener(new WindowAdapter() { // 添加窗口关闭事件的监听器
@Override
public void windowClosing(WindowEvent e) {
// 窗口关闭时执行的代码
}
});
// 创建九个按钮对象,并配置按钮的位置、大小、文本、图标等属性
JButton btn1 = new JButton("按钮1");
btn1.setBounds(20, 20, 100, 50);
btn1.setIcon(new ImageIcon("图片1的文件路径"));
JButton btn2 = new JButton("按钮2");
btn2.setBounds(140, 20, 100, 50);
btn2.setIcon(new ImageIcon("图片2的文件路径"));
// 其他七个按钮以此类推
// 为每个按钮添加点击事件的监听器,实现在面板中放置对应的图片
btn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JLabel label = new JLabel(new ImageIcon("图片1的文件路径"));
label.setBounds(150, 20, 400, 300);
frame.getContentPane().add(label);
frame.getContentPane().repaint();
}
});
// 其他按钮的监听器以此类推
// 将九个按钮添加到窗口的内容面板中,并设置面板的布局方式为 null,以允许自定义按钮的位置和大小
frame.getContentPane().setLayout(null);
frame.getContentPane().add(btn1);
frame.getContentPane().add(btn2);
// 其他七个按钮以此类推
frame.setVisible(true); // 显示窗口
}
}
```
阅读全文