圖形化用戶界面-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.pswp.cn/diannao/38286.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38286.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38286.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

服務器raid5壞盤-換盤-修復陣列過程

目錄 背景原因分析解決步驟名詞解釋進入raid管理界面換回舊4號&#xff0c;進行import再次更換4號盤 總結 背景 服務器除塵之后文件服務器部分文件不能訪問了,部分文件夾內容為空&#xff0c;起初以為是新配置的權限的問題&#xff0c;排查之后發現不僅僅是權限問題 jumpserv…

ISA95-標準2-數據字典部分的解析與設計指南

在 MES/MOM 系統中,ISA-95 第二部分的數據字典扮演著至關重要的角色,它確保了數據的一致性和準確性,為不同系統間的數據交換提供了標準化的術語和定義。以下是 MES/MOM 系統實現 ISA-95 第二部分數據字典的具體概念、功能模塊以及應用場景: 一、概念、功能模塊以及應用場景…

numpy - array(4)

arr1 np.array([[1, 2], [3, 4], [5, 6]]) &#xff08;1&#xff09;def insert(arr, obj, values, axisNone) 向array指定位置插入指定值 axis為默認值None時&#xff0c;如果array是多維數據,則先將array轉化成向量obj&#xff1a;插入的索引&#xff0c;接受int或者多…

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守護進程生命周期管理-supervisord

簡介 supervisor是一個client/server系統,允許用戶控制多個類unix系統的進程,擺脫rc.d腳本的不方便性.supervisor具有簡單,集中化管理,搞笑,可擴展性,高兼容. 整套軟件包含:supervisord(守護進程),supervisorctl(命令行工具),web server(一個web交互界面),XML-RPC 交互 安裝 …

git回退commit的方式

在Git中&#xff0c;回退commit&#xff08;即撤銷之前的提交&#xff09;可以通過多種方式來實現。以下是一些常見的方法&#xff0c;以及它們的詳細步驟和注意事項&#xff1a; ### 1. 使用git revert命令 git revert命令用于撤銷某次commit&#xff0c;但它并不會刪除該comm…

FFmpeg 硬件編碼加速文檔介紹

介紹 硬件訪問:許多平臺提供了對專用硬件的訪問,這些硬件可以用于執行解碼、編碼或過濾等視頻相關操作。 性能與資源使用:使用硬件可以加快某些操作的速度或減少其他資源(特別是CPU)的使用,但可能會產生不同的結果或質量較低,或帶來在使用純軟件時不存在的額外限制。 硬…

公爹公婆出首付買房,離婚的兒媳婦能分嗎?

小兩口結婚后為了更好地生活打算購房&#xff0c;男方父母幫助支付首付款&#xff0c;后房屋登記在夫妻名下。后兩人因感情不和打算離婚&#xff0c;女方要求按照房屋的現行價值進行分割&#xff0c;能否得到支持&#xff1f;近日&#xff0c;江蘇省南通市中級人民法院對這起離…

【Postman學習】

Postman是一個非常流行的API開發和測試工具&#xff0c;廣泛用于Web服務的開發、測試和調試。它提供了一個圖形界面&#xff0c;允許用戶輕松地構建、發送和管理HTTP(S)請求&#xff0c;同時查看和分析響應。下面是對Postman接口測試工具的詳細解釋&#xff1a; 1. Postman簡介…

Linux安裝Node-RED并實現后臺運行及開機啟動

首先確保系統中已近成功安裝Node.js&#xff0c;并保證需要的合適版本&#xff1a; 關于node.js的安裝可以參考我的另一篇博文:《AliyunOS安裝Node.js》。 然后就可以使用npm工具安裝Node-RED了&#xff0c;很簡單使用如下命令&#xff1a; sudo npm install -g --unsafe-per…

【代碼隨想錄算法訓練Day53】LeetCode 739.每日溫度、LeetCode 496.下一個更大元素、LeetCode 503. 下一個更大元素 II

Day53 單調棧 LeetCode 739.每日溫度 經典的單調棧題目&#xff0c;確實的感受到了單調棧的強大之處。 class Solution { public:vector<int> dailyTemperatures(vector<int>& temperatures) {stack<int> st;vector<int> res(temperatures.size…

php+redis 生成二維碼庫

項目場景&#xff1a; 活動報名二維碼&#xff0c;生成 30W 的二維碼量存放到 redis 中&#xff0c;并通過 redis 讀取&#xff0c;以減輕 mysql 數據庫的壓力。 實現很簡單&#xff0c;分為兩步&#xff1a; 1、生成&#xff1a;通過 for 循環&#xff0c;以集合方式插入到…

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、修改配置文件 最終實現&#…

linux系統中給java 應用配置開機自動啟動

第一步需要一個控制java應用啟動&#xff0c;停止&#xff0c;重啟的腳本&#xff0c;腳本內容如下&#xff0c;我是springboot應用&#xff0c;其他的可以根據情況改寫. #!/bin/bashAPP_NAME/data/oa/start-2.0.jar #執行命令有誤時&#xff0c;提示使用說明參數 usage() {ec…

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…