这段代码是一个简单的使用JPanel
和JButton
来设计窗口界面的例子。
在designFrame
方法中,创建了一个JFrame
对象作为窗口,然后创建了两个JPanel
对象作为面板,分别用于放置按钮。
创建了两个JButton
对象作为按钮,并设置按钮的文本内容。
将按钮添加到对应的面板中,并设置面板的背景色。
通过调用addActionListener
方法,将当前对象(例97)注册为按钮的事件监听器。
最后,将两个面板添加到窗口的中央和南方,并设置窗口的大小和可见性。
在actionPerformed
方法中,当点击第一个按钮时,将面板1的背景色设置为红色;当点击第二个按钮时,将面板2的背景色设置为随机颜色。
在main
方法中,创建一个例97对象并调用其designFrame
方法来创建窗口界面。
package ch5;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class 例97 implements ActionListener
{private JFrame myWindow;private JPanel panel1;private JPanel panel2;private JButton button1;private JButton button2;public void designFrame() {myWindow=new JFrame("JPanel实例");panel1=new JPanel();panel2=new JPanel();button1=new JButton("这里是红色");button2=new JButton("这里可以变色");panel1.add(button1);panel2.add(button2);panel1.setBackground(Color.blue);panel2.setBackground(new Color(255,255,0));button1.addActionListener(this);button2.addActionListener(this);myWindow.getContentPane().add(panel1,BorderLayout.CENTER);myWindow.getContentPane().add(panel2,BorderLayout.SOUTH);myWindow.setSize(300,200);myWindow.setVisible(true);myWindow.setDefaultCloseOperation(myWindow.EXIT_ON_CLOSE);
}public void actionPerformed(ActionEvent e) {int a=(int)(Math.random()*256);int b=(int)(Math.random()*256);int c=(int)(Math.random()*256);if(e.getSource()==button1)panel1.setBackground(Color.red);elsepanel2.setBackground(new Color(a,b,c));
}public static void main(String[] args){例97 window1=new 例97();window1.designFrame();// TODO Auto-generated method stub}}
这段代码可以分为以下几个部分:
-
导入必要的类和包:
package ch5; import javax.swing.*; import java.awt.*; import java.awt.event.*;
-
定义
例97
类并实现ActionListener
接口:public class 例97 implements ActionListener
-
声明私有成员变量:
private JFrame myWindow; private JPanel panel1; private JPanel panel2; private JButton button1; private JButton button2;
-
实现
designFrame
方法:public void designFrame() {// 创建 JFrame 对象myWindow = new JFrame("JPanel实例");// 创建两个 JPanel 对象panel1 = new JPanel();panel2 = new JPanel();// 创建两个 JButton 对象button1 = new JButton("这里是红色");button2 = new JButton("这里可以变色");// 将按钮添加到对应的面板中panel1.add(button1);panel2.add(button2);// 设置面板的背景色panel1.setBackground(Color.blue);panel2.setBackground(new Color(255, 255, 0));// 注册按钮的事件监听器button1.addActionListener(this);button2.addActionListener(this);// 将面板添加到窗口中心和南部myWindow.getContentPane().add(panel1, BorderLayout.CENTER);myWindow.getContentPane().add(panel2, BorderLayout.SOUTH);// 设置窗口的大小和可见性myWindow.setSize(300, 200);myWindow.setVisible(true);// 设置窗口的关闭操作myWindow.setDefaultCloseOperation(myWindow.EXIT_ON_CLOSE); }
-
实现
actionPerformed
方法:public void actionPerformed(ActionEvent e) {// 生成随机颜色的 RGB 值int a = (int) (Math.random() * 256);int b = (int) (Math.random() * 256);int c = (int) (Math.random() * 256);// 根据事件源判断按钮,并修改对应的面板背景色if (e.getSource() == button1)panel1.setBackground(Color.red);elsepanel2.setBackground(new Color(a, b, c)); }
-
实现
main
方法:public static void main(String[] args) {// 创建一个例97对象例97 window1 = new 例97();// 调用designFrame方法创建窗口界面window1.designFrame(); }
以上是整段代码的分块解析。代码主要实现了一个简单的窗口界面,其中有两个面板和两个按钮,点击按钮可以改变对应面板的背景色。