Java——一个简单的使用JPanel和JButton来设计窗口界面

这段代码是一个简单的使用JPanelJButton来设计窗口界面的例子。
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
		

	}

}

这段代码可以分为以下几个部分:

  1. 导入必要的类和包:

    package ch5;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    
  2. 定义例97类并实现ActionListener接口:

    public class 例97 implements ActionListener
    
  3. 声明私有成员变量:

    private JFrame myWindow;
    private JPanel panel1;
    private JPanel panel2;
    private JButton button1;
    private JButton button2;
    
  4. 实现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);
    }
    
  5. 实现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));
    }
    
  6. 实现main方法:

    public static void main(String[] args) {
        // 创建一个例97对象
        例97 window1 = new 例97();
        // 调用designFrame方法创建窗口界面
        window1.designFrame();
    }
    

以上是整段代码的分块解析。代码主要实现了一个简单的窗口界面,其中有两个面板和两个按钮,点击按钮可以改变对应面板的背景色。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张謹礧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值