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

news2024/11/18 22:27:03

这段代码是一个简单的使用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();
    }
    

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/928180.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【谷粒商城】环境搭建一:Docker容器部署

Docker容器部署 VMware虚拟机安装 参考:VMware虚拟机安装Linux教程 Docker安装 Linux安装Docker # 1.更新apt包索引 sudo apt-get update# 2.安装以下包以使apt可以通过HTTPS使用存储库(repository) sudo apt-get install -y apt-transpor…

火狐渗透浏览器免安装版

火狐浏览器免安装版 📎网安火狐Firefox直接使用无需安装.zip 火狐浏览器设置代理,方便burp抓包 参考:burpsuite简单抓包教程_burpsuite抓包_Xiongcanne的博客-CSDN博客

从程序员进阶到架构师再到CTO,该如何破解焦虑?

引言 我们生活的时代,变化太快,许多人在职业发展的道路上都会面临焦虑与迷茫。这种焦虑源自我们内心的不安,也来自于外部形势的变化。 对于技术从业者来说,焦虑并不会随着职业发展而自动消失,不同职场阶段会面临不同的…

SSL/TLS协议的概念、工作原理、作用以及注意事项

个人主页:insist--个人主页​​​​​​ 本文专栏:网络基础——带你走进网络世界 本专栏会持续更新网络基础知识,希望大家多多支持,让我们一起探索这个神奇而广阔的网络世界。 目录 一、SSL/TLS协议的基本概念 二、SSL/TLS的工作…

VBA_MF系列技术资料1-167

MF系列VBA技术资料 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧,我参考大量的资料,并结合自己的经验总结了这份MF系列VBA技术综合资料,而且开放源码(MF04除外),其中MF01-04属于定…

苹果新健康专利:利用 iPhone、Apple Watch 来分析佩戴者的呼吸情况

根据美国商标和专利局(USPTO)公示的清单,苹果获得了一项健康相关的技术专利,可以利用 iPhone、Apple Watch 来分析佩戴者的呼吸系统。 苹果在专利中概述了一种测量用户呼吸功能的系统,通过 iPhone 上的光学感测单元&am…

前端需要理解的设计模式知识

设计模式的原则:1. 单一职责原则(一个对象或方法只做一件事) 2. 最少知识原则(尽可能少的实体或对象间互相作用) 3. 开放封闭原则(软件实体具有可扩展且不可修改) 设计模式是通过代码设计经验总…

2021年12月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题:移动路线 桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格的坐标为(m,n)。 小明是个调皮的孩子,一天他捉来一只蚂蚁,不小心把蚂蚁的右脚弄伤了,于是蚂蚁只能向上或向右…

基于PIC单片机温度-脉搏-DS18B20温度-液晶12864显示(proteus仿真+源程序)

一、系统方案 1、上电初始化液晶第一行显示脉搏,第二行显示温度,第三行显示模式,第四行显示强度;按下K1按键可以选择模式,催眼模式或治疗模式。 2、治疗模块下,可以通过K2、K3修改强度。 二、硬件设计 原理…

探索数据湖中的巨兽:Apache Hive分布式SQL计算平台浅度剖析!

文章目录 ◆ Apache Hive 概述1.1 分布式SQL计算1.2 Hive的优势 ◆ 模拟实现Hive功能2.1 元数据管理2.2 解析器2.3 基础架构2.4 Hive架构 ◆ Hive基础架构3.1 Hive架构图3.2 Hive组件3.2.1 元数据存储3.2.2 Driver驱动程序3.2.3 用户接口 ◆ Hive部署4.1 VMware虚拟机部署步骤一…

SSL/CA 证书及其相关证书文件(pem、crt、cer、key、csr)

数字证书是网络世界中的身份证,数字证书为实现双方安全通信提供了电子认证。数字证书中含有密钥对所有者的识别信息,通过验证识别信息的真伪实现对证书持有者身份的认证。数字证书可以在网络世界中为互不见面的用户建立安全可靠的信任关系,这…

互联网医院成品功能你有哪些看法?

随着信息化的飞速发展,医疗领域信息化程度日益加深,医院对于信息化的自身需求越来越高,由此也推动了医院信息化的快速发展。而即时医疗信息服务能够解决普通老百姓医疗信息匮乏、花大钱看小病、就医不及时等基本问题。通过智能手机、平板电脑…

国内Android应用市场上线流程

国内各个Android应用市场的上线流程可能会有所不同,特别是在审核方面。此外,某些应用市场可能有一些特殊的政策和要求,您需要仔细阅读并遵循这些要求,以确保您的应用能够顺利上线并保持在市场上。在整个过程中,与市场的…

重磅丨《欧盟电池和废电池法规》最新发布!

《欧盟新电池法》 8月17日,欧盟官方公示满20天的《欧盟电池和废电池法规》(文中简称《新电池法》)将正式生效。 根据《新电池法》,自2027年起,动力电池出口到欧洲必须持有符合要求的“电池护照”,记录电池…

Spring与Mybatis集成且Aop整合(放飞双手,迅速完成CRUD及分页)

目录 一、概述 二、集成 ( 1 ) 为什么 ( 2 ) 优点 ( 3 ) 实例 三、整合 3.1 讲述 3.2 整合进行分页 带我们带来的收获 一、概述 集成是指将不同的组件、系统或框架整合在一起,使它们能够协同工作,共同完成某个功能或提供某种服务。在软件开发中&…

M1/M2打开Parallels Desktop提示“由于临界误差,不能启动虚拟机”解决办法

M1/M2安装Parallels Desktop 18.3.2PD虚拟机后,安装win11或者打开原有win系统提示由于临界误差,不能启动虚拟机。 解决方法: 很简单! 关闭系统SIP,重新安装PD18虚拟机激活即可。

4G模组EC20 网卡udhcpc获取IP但是没有设置IP

使能网卡: ifconfig usb0 up dhcp获取ip,虽然没有报error,但是很显然没有设置进配置 获取ip命令:udhcpc -i usb0 非正常现象: 正常现象: 解决方法: (1)rootfs 创建文件夹…

资深网络工程师的网络排障全过程,太强了!【附工具下载】

下午好,我的网工朋友 我们知道,交换机是局域网中一种很重要的网络设备,它的工作状态与客户端系统的上网状态息息相关。 可是,在实际工作过程中,交换机的状态很容易受到外界的干扰,那样一来局域网中就会出…

打印所有声母,韵母组合汉语拼音并显示到表格中

最近辅导孩子学习语文:声母,韵母。现在将其组合起来。打印所有拼音集合 以下是整理出的有关拼音的内容。 声母(23个): b、p、m、f、d、t、n、l、g、k、h、j、q、x、zh、ch、sh、r、z、c、s、y、w。 韵母&#xff0…

GitHub星标4.6k,一个项目解决(几乎所有)机器学习问题

在github上发现了一个宝藏项目。 先介绍一下这个项目的作者Abhishek Thakur,他是世界上第一位kaggle四重大师!在比赛、数据集、Notebooks、讨论四项排名中皆名列前茅。 本次分享的项目书籍就是由Abhishek Thakur亲自撰写,可以这么说&#xf…