图形化用户界面-java头歌实训

图形化用户界面在这里插入图片描述

import java.awt.*;  
import javax.swing.*;  public class GraphicsTester extends JFrame {  public GraphicsTester() {  super("Graphics Demo");  setSize(480, 300);  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  }  public void paint(Graphics g) {  super.paint(g);  g.setFont(new Font("Serif", Font.BOLD, 12)); // 字体Serif,粗体,12号  g.setColor(Color.BLUE);  g.drawString("Hello, World!", 20, 50); // 在(20, 50)位置绘制字符串  g.setFont(new Font("Serif", Font.ITALIC, 14)); // 字体Serif,斜体,14号  g.setColor(Color.RED);  g.drawString("Graphics Demo", 250, 50); // 在(250, 50)位置绘制字符串  // 绘制直线  g.setColor(Color.GREEN);  g.drawLine(50, 100, 150, 100); // 从(50, 100)到(150, 100)绘制直线  // 绘制空心矩形  g.setColor(Color.BLACK);  g.drawRect(170, 50, 100, 50);  // 绘制实心矩形  g.setColor(Color.YELLOW);  g.fillRect(170, 120, 100, 50);  g.setColor(Color.CYAN);  g.drawRoundRect(200, 120, 100, 50, 20, 20); // 在(200, 120)位置绘制一个带圆角的空心矩形  // 绘制实心圆角矩形  g.setColor(Color.MAGENTA);  g.fillRoundRect(200, 180, 100, 50, 20, 20); // 在(200, 180)位置绘制一个带圆角的实心矩形  // 绘制标准矩形模拟3D效果(没有真正的draw3DRect和fill3DRect方法)  g.setColor(Color.LIGHT_GRAY);  g.fillRect(50, 50, 100, 50); // 底部颜色  g.setColor(Color.GRAY);  g.drawRect(50, 50, 100, 50); // 边缘颜色,模拟阴影效果  // 绘制空心椭圆  g.setColor(Color.BLUE);  g.drawOval(50, 190, 100, 50);  // 绘制实心椭圆  g.setColor(Color.GREEN);  g.fillOval(170, 190, 100, 50);  // 绘制圆弧  g.setColor(Color.RED);  g.drawArc(50, 260, 100, 50, 45, 180); // 从45度开始,画180度的圆弧  // 绘制扇形  g.setColor(Color.PINK);  g.fillArc(170, 260, 100, 50, 0, 90); // 从0度开始,画90度的扇形  // 绘制多边形  int[] xPoints = {50, 100, 100, 50};  int[] yPoints = {20, 20, 70, 70};  int nPoints = 4;  g.setColor(Color.ORANGE);  g.drawPolygon(xPoints, yPoints, nPoints); // 绘制空心多边形  g.setColor(Color.CYAN);  g.fillPolygon(xPoints, yPoints, nPoints); // 绘制实心多边形  }  public static void main(String args[]) {  try {  UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());  JFrame.setDefaultLookAndFeelDecorated(true);  GraphicsTester tester = new GraphicsTester();  tester.setVisible(true);  } catch (ClassNotFoundException e) {  // 如果Look and Feel类找不到,打印异常信息  e.printStackTrace();  } catch (UnsupportedLookAndFeelException e) {  // 如果Look and Feel不受支持,打印异常信息  e.printStackTrace();  } catch (InstantiationException e) {  // 如果Look and Feel实例化失败,打印异常信息  e.printStackTrace();  } catch (IllegalAccessException e) {  // 如果访问Look and Feel类受限,打印异常信息  e.printStackTrace();  }  
}
}
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.*;
import javax.swing.*;public class test3 extends JFrame {public test3() {super("word");     //调用基类构造方法setVisible(true);                  //显示窗口setSize(480, 250);                 //设置窗口大小System.out.println(getSize());}public void paint(Graphics g) {super.paint(g);// ########## Start ##########Graphics2D g2d = (Graphics2D) g;g2d.setPaint(Color.BLACK);  g2d.drawString("Hello, 3D Rectangle!", 50, 50);  // 模拟 draw3DRect  int x = 100, y = 100, width = 100, height = 50;  g2d.setColor(Color.LIGHT_GRAY);   g2d.drawRect(x, y, width, height);    g2d.setColor(Color.GRAY.darker());  g2d.drawLine(x, y + height - 1, x + width - 1, y + height - 1); g2d.drawLine(x + width - 1, y, x + width - 1, y + height - 2);// 模拟 fill3DRect  int fillX = 150, fillY = 150, fillWidth = 100, fillHeight = 50;  GradientPaint gp = new GradientPaint(  fillX, fillY, Color.YELLOW,  fillX, fillY + fillHeight, Color.ORANGE, true  );  g2d.setPaint(gp);  g2d.fillRect(fillX, fillY, fillWidth, fillHeight); g2d.setColor(Color.ORANGE.darker());  g2d.drawLine(fillX, fillY + fillHeight, fillX + fillWidth, fillY + fillHeight); Point2D.Float p1 = new Point2D.Float(200.f, 75.f);Point2D.Float p2 = new Point2D.Float(250.f, 75.f);GradientPaint g1 = new GradientPaint(p1, Color.red, p2, Color.yellow, true);Arc2D.Float arc = new Arc2D.Float(p1.x - (p2.x - p1.x) / 2, 75.f, 130.f, p2.x - p1.x, 0.f, 360.f, 2);//绘制实心矩形g2d.setPaint(Color.BLUE); // 设置画笔颜色为蓝色  
Rectangle2D rect = new Rectangle2D.Float(100, 100, 100, 100); // 创建一个矩形对象  
g2d.fill(rect); // 填充矩形// ########## End ##########sout(p1);sout(p2);}public void sout(Point2D.Float p) {System.out.println(p);}public static void main(String args[]) {test3 application = new test3();application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;public class test4 extends javax.swing.JFrame {int index;String input;String choosedStr;public test4() {initComponents();}@SuppressWarnings("unchecked")// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponentsprivate void initComponents() {jButton1 = new javax.swing.JButton();jLabel1 = new javax.swing.JLabel();textField1 = new java.awt.TextField();jScrollPane1 = new javax.swing.JScrollPane();jList1 = new javax.swing.JList<>();textArea1 = new java.awt.TextArea();setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);jButton1.setText("确定");jButton1.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jButton1ActionPerformed(evt);}});jLabel1.setText("input");// ########## Start ##########// 设置 textField1 监听textField1.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {textField1ActionPerformed(evt);}});// ########## End ##########jList1.setModel(new javax.swing.AbstractListModel<String>() {String[] strings = {"Item1", "Item2", "Item3", "Item4", "Item5"};public int getSize() {return strings.length;}public String getElementAt(int i) {return strings[i];}});// ########## Start ##########// 设置 jList1 鼠标监听jList1.addMouseListener(new java.awt.event.MouseAdapter() {public void mouseClicked(java.awt.event.MouseEvent evt) {jList1MouseClicked(evt);}});// ########## End ##########jScrollPane1.setViewportView(jList1);javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(55, 55, 55).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addComponent(jLabel1).addGap(46, 46, 46).addComponent(textField1, javax.swing.GroupLayout.PREFERRED_SIZE, 79, javax.swing.GroupLayout.PREFERRED_SIZE)).addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 147, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(94, 94, 94).addComponent(textArea1, javax.swing.GroupLayout.PREFERRED_SIZE, 232, javax.swing.GroupLayout.PREFERRED_SIZE)).addGroup(layout.createSequentialGroup().addGap(85, 85, 85).addComponent(jButton1))).addContainerGap(63, Short.MAX_VALUE)));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(55, 55, 55).addComponent(jLabel1)).addGroup(layout.createSequentialGroup().addGap(45, 45, 45).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(textArea1, javax.swing.GroupLayout.PREFERRED_SIZE, 228, javax.swing.GroupLayout.PREFERRED_SIZE).addGroup(layout.createSequentialGroup().addComponent(textField1, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(32, 32, 32).addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))).addGap(18, 18, 18).addComponent(jButton1).addContainerGap(146, Short.MAX_VALUE)));pack();}// </editor-fold>//GEN-END:initComponentsprivate void textField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_textField1ActionPerformedinput = textField1.getText();}//GEN-LAST:event_textField1ActionPerformedprivate void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformedString []shix={"","touge","is","nice"};textField1.setText(shix[index]);input = textField1.getText();//第一行输出inputtextField1.setText("");textArea1.setText(input + "\n" + "Selection is Item" + index);System.out.println(input + "\n" + "Selection is Item" + index);}//GEN-LAST:event_jButton1ActionPerformedprivate void jList1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jList1MouseClickedindex = jList1.getSelectedIndex() + 1;}//GEN-LAST:event_jList1MouseClickedpublic static void main(String args[]) {java.awt.EventQueue.invokeLater(new Runnable() {public void run() {new test4().setVisible(true);}});}// Variables declaration - do not modify//GEN-BEGIN:variablesprivate javax.swing.JButton jButton1;private javax.swing.JLabel jLabel1;private javax.swing.JList<String> jList1;private javax.swing.JScrollPane jScrollPane1;private java.awt.TextArea textArea1;private java.awt.TextField textField1;// End of variables declaration//GEN-END:variables
}

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

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

相关文章

服务器raid5坏盘-换盘-修复阵列过程

目录 背景原因分析解决步骤名词解释进入raid管理界面换回旧4号&#xff0c;进行import再次更换4号盘 总结 背景 服务器除尘之后文件服务器部分文件不能访问了,部分文件夹内容为空&#xff0c;起初以为是新配置的权限的问题&#xff0c;排查之后发现不仅仅是权限问题 jumpserv…

VTK学习日志:基于VTK9.3.0+Visual Studio c++实现DICOM影像MPR多平面重建+V R体绘制4个视图展示功能的实现(二)

前段时间对VTK9.3.0进行了编译&#xff0c;开发了MPRVR实现的demo,显示效果不是很理想&#xff0c;正好趁着周末有时间&#xff0c;再度对之前的程序进行优化和完善&#xff0c;先展示下效果&#xff1a; VTK实现MPRVR四视图 再次讲解下基于VTK的MPRVR实现的简单项目创建过程&a…

Linux安装Node-RED并实现后台运行及开机启动

首先确保系统中已近成功安装Node.js&#xff0c;并保证需要的合适版本&#xff1a; 关于node.js的安装可以参考我的另一篇博文:《AliyunOS安装Node.js》。 然后就可以使用npm工具安装Node-RED了&#xff0c;很简单使用如下命令&#xff1a; sudo npm install -g --unsafe-per…

MATLAB使用系统辨识工具箱建立PID水温的传递函数系数

概述 利用PID控制水温&#xff0c;由于实际在工程项目中&#xff0c;手动调节PID参数比较耗费时间&#xff0c;所以可以先利用MATLAB中的Simulink软件建立模型&#xff0c;先在仿真软件上调节大概的PID参数&#xff0c;再利用此PID参数为基础在实际的工程项目中手动调节PID参数…

这些并发编程技术你都知道吗?

与其碌碌无为&#xff0c;不如兴风作浪。 虽然不是所有的系统都需要很多的并发编程技术&#xff0c;但是掌握常见的高并发秘籍&#xff0c;便能让我们的系统快起来&#xff0c;面对访问量的剧增从容应对。 接下来&#xff0c;为我们一起来看看常见的高并发技术有哪些。总结起来…

SSH版本升级-openssh-9.7p1

SSH版本升级-openssh-9.7p1 1、查看当前版本2、安装openssl2.1、编译安装ssl 3、下载新版本SSH4、备份原有的SSH配置5、上传文件并解压6、卸载原有的openssh包7、编译安装openssh7.1、在解压后的目录&#xff0c;初始化openssh7.2、将文件拷回7.3、修改配置文件 最终实现&#…

DDD学习笔记五

模型引力场&#xff1a;聚合 强作用力体现&#xff1a; 某个领域模型是另一些模型存在的前提&#xff0c;没有前者&#xff0c;后者就失去了生存的意义。 一组领域模型之间存在关联的领域逻辑&#xff0c;任何时候都不能违反。 一组领域模型必须以一个完整的、一致的状态呈现给…

CSDN写文章时需要上、下标字号怎么输?

上标&#xff1a;​^^&#xff0c;符号中间加字 下标&#xff1a;~~&#xff0c;符号中间加字 前题是用MD编辑器&#xff0c;不然白搭&#xff1a; 我是感觉CSDN这个文本编辑比较拉&#xff0c;非常想吐槽。

dB分贝入门

主要参考资料&#xff1a; dB&#xff08;分贝&#xff09;定义及其应用: https://blog.csdn.net/u014162133/article/details/110388145 目录 dB的应用一、声音的大小二、信号强度三、增益 dB的应用 一、声音的大小 在日常生活中&#xff0c;住宅小区告知牌上面标示噪音要低…

vue2 element ui 表单 动态增加表单项 表单项值不可重复 select多选

案例 <template><el-form :model"form" ref"form" label-width"70px"><el-form-item><el-button icon"el-icon-plus" type"primary" plain click"add">新增</el-button><el-b…

VUE3-Elementplus-form表单-笔记

1. 结构相关 el-row表示一行&#xff0c;一行分成24份 el-col表示列 (1) :span"12" 代表在一行中&#xff0c;占12份 (50%) (2) :span"6" 表示在一行中&#xff0c;占6份 (25%) (3) :offset"3" 代表在一行中&#xff0c;左侧margin份数 el…

后劳动经济学(PLE):AI时代的工作未来

引言 随着人工智能&#xff08;AI&#xff09;和自动化技术的飞速发展&#xff0c;我们迎来了一个新的经济范式——后劳动经济学&#xff08;PLE&#xff09;。这一概念主要讨论在AI和自动化技术超越人类能力的关键领域后&#xff0c;机器将不可避免地在许多经济活动中取代人类…

如何玩单机版:QQ音速

前言 我是研究单机的老罗&#xff0c;今天教大家带来一款怀旧游戏QQ音速 的教程。根据我的文章&#xff0c;一步一步就可以玩了。 如今市面上的资源参差不齐&#xff0c;大部分的都不能运行&#xff0c;本人亲自测试&#xff0c;运行视频如下&#xff1a; QQ音速 搭建教程 此…

vscode下无法识别node、npm的问题

node : 无法将“node”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 因为node是在cmd安装的&#xff0c;是全局安装的&#xff0c;并不是在这个项目里安装的。 解决方案&#xff1a; 1.在vscode的控制台&#xff0c;针对一个项目安装特定版本的node&#xff1b; 2.已经…

C++(Python)肥皂泡沫普拉托边界膜曲面模型算法

&#x1f3af;要点 &#x1f3af;肥皂泡二维流体模拟 | &#x1f3af;泡沫普拉托边界膜曲面模型算法演化厚度变化 | &#x1f3af;螺旋曲面三周期最小结构生成 &#x1f4dc;皂膜用例&#xff1a;Python计算物理粒子及拉格朗日和哈密顿动力学 | Python和MATLAB粘性力接触力动…

鸿蒙开发设备管理:【@ohos.multimodalInput.inputEventClient (注入按键)】

注入按键 InputEventClient模块提供了注入按键能力。 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。本模块接口均为系统接口&#xff0c;三方应用不支持调用。 导入模块 import inputEventCli…

爱情再启:庄国栋笑谈“玫瑰人生”爱情觉悟

庄国栋&#xff0c;这位电视剧《玫瑰的故事》中的男主角&#xff0c; 最近在一次采访中坦言&#xff1a;“如果给我一次重来的机会&#xff0c; 我绝对会毫不犹豫地选择爱情&#xff01;” 听到这话&#xff0c; 我不禁想&#xff0c;庄先生&#xff0c;您是不是被剧里的玫瑰…

Solidworke学习(装配体3)

目录 本节学习内容&#xff1a; 一、高级配合 &#xff08;1&#xff09;对称配合 &#xff08;2&#xff09;宽度配合 &#xff08;3&#xff09;距离配合 二、机械配合 &#xff08;1&#xff09;凸轮配合 &#xff08;2&#xff09;槽口配合 三、快捷菜单 本节学习…

python工作目录与文件目录

工作目录 文件目录&#xff1a;文件所在的目录 工作目录&#xff1a;执行python命令所在的目录 D:. | main.py | ---data | data.txt | ---model | | model.py | | train.py | | __init__.py | | | ---nlp | | | bert.py | …

计算机网络期末复习(大题+小题)

计算机网络期末复习 一、计算机网络概述 Point 1 计算机网络就是以传输信息为基本目的&#xff0c;用通信线路和通信设备将多个计算机连接起来的计算机系统的集合。由自治的计算机互联起来的结合体。 Point 2 按网络的覆盖范围进行分类 &#xff08;1&#xff09;局域网*…