这段代码是一个简单的使用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);
else
panel2.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); else panel2.setBackground(new Color(a, b, c)); }
-
实现
main
方法:public static void main(String[] args) { // 创建一个例97对象 例97 window1 = new 例97(); // 调用designFrame方法创建窗口界面 window1.designFrame(); }
以上是整段代码的分块解析。代码主要实现了一个简单的窗口界面,其中有两个面板和两个按钮,点击按钮可以改变对应面板的背景色。