实验四 Java图形界面与事件处理(头歌)

实验四 Java图形界面与事件处理(头歌)

制作不易!点个关注!给大家带来更多的价值!

目录

    • 实验四 Java图形界面与事件处理(头歌)
  • `制作不易!点个关注!给大家带来更多的价值!`
      • 代码如下:

在这里插入图片描述

代码如下:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;/*** Created by IntelliJ IDEA.** @Author :* @create: 2023/03/29 10:15*/
public class ArtFont extends JFrame implements ActionListener, ItemListener {JComboBox fontType;//字体样式下拉框JComboBox fontSize;//字体大小下拉框JComboBox windowStyle;//窗体样式下拉框JCheckBox boldBx;// 粗体按钮JCheckBox italicBx;// 斜体按钮JButton colorBtn;// 颜色按钮;String[] fontNames;// 字体名称;String[] fontSizes;// 字体大小;JLabel label;// 输入提示标签;JTextField inputText;// 文字输入框;JTextArea txtArea;// 文字显示区;JPanel northPanel;// 字体设置;JPanel centerPanel;// 显示效果区JPanel southPanel;//样式设置Font font;int boldStyle, italicStyle, underlineStyle;int fontSizeStyle;String fontNameStyle;Color colorStyle = Color.black;// 设置字体的默认颜色为黑色;String[] style = { "默认显示效果", "Windows显示效果", "Unix显示效果" };public ArtFont() {super("字体设置");// 设置默认字体boldStyle = 0;italicStyle = 0;underlineStyle = 0;fontSizeStyle = 10;fontNameStyle = "宋体";font = new Font(fontNameStyle, boldStyle + italicStyle, fontSizeStyle);northPanel = getNorthPanel();centerPanel = getCenterPanel();southPanel = getSouthPanel();// 设置容器;Container container = getContentPane();container.setLayout(new BorderLayout());//将northPanel添加到窗体的北部container.add(northPanel, BorderLayout.NORTH);//将centerPanel添加到窗体的中部container.add(centerPanel, BorderLayout.CENTER);//将southPanel添加到窗体的南部container.add(southPanel, BorderLayout.SOUTH);setSize(500, 300);//将窗体位于屏幕的中央this.setLocationRelativeTo(null);setVisible(true);}private JPanel getNorthPanel() {JPanel panel = new JPanel();label = new JLabel("输入");inputText = new JTextField(10);boldBx = new JCheckBox("粗体");italicBx = new JCheckBox("斜体");colorBtn = new JButton("颜色");panel.add(label);panel.add(inputText);panel.add(boldBx);panel.add(italicBx);panel.add(colorBtn);/***  在下面括号中改名字JTextArea("计xxxx xxxxxxxx xx")***/JTextArea textArea=	new JTextArea("计xxxx xxxxxxxx xx");//注册事件监视器inputText.addActionListener(this);colorBtn.addActionListener(this);boldBx.addItemListener(this);italicBx.addItemListener(this);panel.add(textArea);return panel;}private JPanel getCenterPanel() {JPanel panel = new JPanel();txtArea =  new JTextArea();panel.setLayout(new BorderLayout());panel.add(new JScrollPane(txtArea), BorderLayout.CENTER);return panel;}private JPanel getSouthPanel() {JPanel panel = new JPanel();//获得系统默认字体GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();fontNames = ge.getAvailableFontFamilyNames();fontType = new JComboBox(fontNames);//设置字体大小fontSizes = new String[63];for (int i = 0; i < fontSizes.length; i++) {fontSizes[i] = Integer.toString(i+10);}fontSize = new JComboBox(fontSizes);windowStyle = new JComboBox(style);panel.add(fontType);panel.add(fontSize);panel.add(windowStyle);//注册事件监视器fontType.addItemListener(this);fontSize.addItemListener(this);windowStyle.addItemListener(this);return panel;}public static void main(String args[]) {ArtFont artFont = new ArtFont();artFont.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}@Overridepublic void actionPerformed(ActionEvent e) {if (e.getSource() == inputText) {txtArea.setText(inputText.getText());} else if (e.getSource() == colorBtn) {colorStyle=JColorChooser.showDialog(this,"请选择一种颜色",colorStyle);colorBtn.setForeground(colorStyle);txtArea.setForeground(colorStyle);}}@Overridepublic void itemStateChanged(ItemEvent e) {if (e.getSource() == boldBx) {if (boldBx.isSelected()){boldStyle=Font.BOLD;}else {boldStyle=Font.PLAIN;}} else if (e.getSource() == italicBx) {if (italicBx.isSelected()){italicStyle=Font.ITALIC;}else {italicStyle=Font.PLAIN;}} else if (e.getSource() == fontType) {fontNameStyle=(String) e.getItem();} else if (e.getSource() == fontSize) {fontSizeStyle=Integer.parseInt((String) e.getItem());} else if (e.getSource() == windowStyle) {String s = (String) e.getItem();String className = "";if (s.equals("Windows显示效果"))className = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";else if (s.equals("Unix显示效果"))className = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";else if (s.equals("默认显示效果"))className = UIManager.getCrossPlatformLookAndFeelClassName();try {UIManager.setLookAndFeel(className);SwingUtilities.updateComponentTreeUI(this);} catch (Exception de) {System.out.println("Exception happened!");}}font = new Font(fontNameStyle, boldStyle + italicStyle, fontSizeStyle);txtArea.setFont(font);}}

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

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

相关文章

platformio创建项目卡死问题(ctl解决)

vscode上安装完platformio后&#xff0c;创建一个新项目&#xff0c;始终在转圈&#xff0c;查阅官网文档后发现可以使用ctl在终端中创建项目&#xff0c;本文方案的前提是终端走了代理。 根据官网命令安装ctl&#xff1a; curl -fsSL -o get-platformio.py https://raw.gith…

case语句

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 CASE 语句的执行方式与 IF...THEN...ELSIF 语句的执行方式类似&#xff0c;但是它是通过一个表达式的值来决定执行哪个分支 CASE 选择器表达式 WHEN 条件 1 THEN 语句序列 …

2024.03.23校招 实习 内推 面经

绿*泡*泡VX&#xff1a; neituijunsir 交流*裙 &#xff0c;内推/实习/校招汇总表格 1、校招 | 元戎启行 2024春招&#xff08;内推&#xff09; 校招 | 元戎启行 2024春招&#xff08;内推&#xff09; 2、校招 | 博雅工道机器人 2024春季校园招聘开始了&#xff01; 校招…

内网穿透实践

一、使用介绍 由于绝大部份人的网络都是处在内网之中&#xff0c;这导致你在本地电脑上写的一些web服务器&#xff08;又或者其它网络相关的功能&#xff09;&#xff0c;都是无法将链接发给别人使用查看的。 并且由于大部分人采用的方案也都是在本地进行测试开发&#xff0c…

dotnet依赖注入与IOC(包含Autofac的使用)

文章目录 依赖注入与IOCIOC依赖注入DIAutofac轻量容器的使用 依赖注入与IOC IOC IOC 是 Inversion of Control&#xff08;控制反转&#xff09;的缩写。在软件开发中&#xff0c;IOC 是一种设计模式&#xff0c;它改变了传统的程序设计流程&#xff0c;使得对象之间的依赖关系…

redis数据结构基础介绍

Redis 是一种开源的、内存中的数据结构服务器&#xff0c;它支持多种类型的数据结构。以下是 Redis 支持的主要数据结构&#xff1a; 字符串&#xff08;String&#xff09;&#xff1a; 这是最简单的类型&#xff0c;一个键对应一个值&#xff0c;是二进制安全的。这意味着 Re…

Linux: linux常见操作指令

目录 01.ls 指令 02. pwd命令 03. cd 指令 04. touch指令 05.mkdir指令&#xff08;重要&#xff09; 06.rmdir指令 && rm 指令&#xff08;重要&#xff09; 07.man指令&#xff08;重要&#xff09; 07.cp指令&#xff08;重要&#xff09; 08.mv指令&#…

H.264 压缩与编解码原理

H.264 压缩与编解码原理 H.264 压缩与编解码原理H.264 简介视频编码的总体思路H.264 压缩技术帧内预测压缩什么是空间冗余&#xff1f;具体预测方法 帧间预测压缩什么是时间冗余&#xff1f;具体预测方法&#xff1a;运动估计 概念&#xff1a;Group of Pictures&#xff08;GO…

java-网络编程socket-聊天室-先导

这边我会简单介绍一下聊天室的组成部分,和思路的引导 涉及知识点 java 中异常处理机制 和 io流和网络编程socket 简单回顾异常机制 Java中的异常机制是一种用于处理程序运行期间出现的错误或异常情况的机制。这种机制允许程序员定义在特定情况下可能发生的错误&#xff0c;并…

mysql慢sql排查与分析

当MySQL遇到慢查询&#xff08;慢SQL&#xff09;时&#xff0c;我们可以通过以下步骤进行排查和优化&#xff1a; 标题开启慢查询日志&#xff1a; 确保MySQL的慢查询日志已经开启。通过查看slow_query_log和slow_query_log_file变量来确认。 如果没有开启&#xff0c;可以…

闻风丧胆的算法(二)

&#x1f308;个人主页&#xff1a;Rookie Maker &#x1f525; 系列专栏&#xff1a;算法 &#x1f3c6;&#x1f3c6;关注博主&#xff0c;随时获取更多关于IT的优质内容&#xff01;&#x1f3c6;&#x1f3c6; &#x1f600;欢迎来到我的代码世界~ &#x1f601; 喜欢的小…

小林coding图解计算机网络|基础篇01|TCP/IP网络模型有哪几层?

小林coding网站通道&#xff1a;入口 本篇文章摘抄应付面试的重点内容&#xff0c;详细内容还请移步&#xff1a; 文章目录 应用层(Application Layer)传输层(Transport Layer)TCP段(TCP Segment) 网络层(Internet Layer)IP协议的寻址能力IP协议的路由能力 数据链路层(Link Lay…

一文介绍回归和分类的本质区别 !!

文章目录 前言 1、回归和分类的本质 &#xff08;1&#xff09;回归&#xff08;Regression&#xff09;的本质 &#xff08;2&#xff09;分类&#xff08;Classification&#xff09;的本质 2、回归和分类的原理 &#xff08;1&#xff09;回归&#xff08;Regression&#x…

前端全方位进阶课程已经备好,陪你挑战年薪20w以上!

到目前为止我在视频号上已经顺利完成8场直播了。在此&#xff0c;我也很真诚的感谢小伙伴们对我的支持与厚爱&#xff01;让我真真感受到了大家对技术的热忱&#xff01; 这几场直播下来给我最直接的感受就是&#xff1a;累&#xff0c;很累&#xff01;准确的说不应该是直播累…

Vue3(学自尚硅谷)

一、基础准备工作 &#xff08;一&#xff09;过程 环境要求&#xff1a;有node.js环境、npm。执行命令&#xff1a; npm create vuelatest 而后选择&#xff1a; ✔ 请输入项目名称&#xff1a; … me_vue3 ✔ 是否使用 TypeScript 语法&#xff1f; … 否 / 是 ✔ 是否启用…

干货| 这篇电商数据分析案例一定要看!

主流电商商品数据采集API接口 直播带货行业在经历了高端玩家的“春秋争霸”之后&#xff0c;逐渐进入到了一种“网红化”的阶段。人们正在将注意力从原来凤毛麟角的直播巨头逐渐转移到一些小主播身上。但近短时间却出现了网红带货营销额放缓的现象。因此商家必须要调整直播策略…

探索ChatGPT的学术应用:写出优质论文的突破之道

ChatGPT无限次数:点击直达 探索ChatGPT的学术应用&#xff1a;写出优质论文的突破之道 在当今信息爆炸的时代&#xff0c;人们对于文本生成和语言处理的需求越来越迫切。ChatGPT作为一种强大的自然语言处理模型&#xff0c;已经引起了广泛关注&#xff0c;并在实践中展现了其强…

【数据库】数据库的介绍、分类、作用和特点,AI人工智能数据如何存储

欢迎来到《小5讲堂》&#xff0c;大家好&#xff0c;我是全栈小5。 这是《数据库》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识…

从 Vue.js 到微信小程序 - 框架语法差异与开发技巧

作为一名有 Vue 开发经验的开发者,如果想快速掌握小程序开发,需要了解 Vue 和小程序在设计上的主要差异,这样可以更好地过渡和适应小程序的开发模式。以下是我总结的几个重点: 页面定义: Vue 中使用 .vue 文件定义页面,包含模板、脚本和样式。小程序中使用三个文件定义页面:WXM…

磁力链接的示例与解释

磁力链接&#xff08;Magnet URI scheme&#xff09;是一种特殊类型的统一资源标识符&#xff08;URI&#xff09;&#xff0c;它包含了通过特定散列函数&#xff08;如SHA-1&#xff09;得到的文件内容的散列值&#xff0c;而不是基于位置或名称的引用。这使得磁力链接成为在分…