亚州天堂爱爱,做爱视频国产全过程在线观看,成人试看30分钟免费视频,女人无遮挡裸交性做爰视频网站

? ? ?

Java GUI 桌面應(yīng)用開發(fā)(java開發(fā)桌面應(yīng)用程序)

  前言

  雖然現(xiàn)在已經(jīng)很少項(xiàng)目會(huì)涉及GUI技術(shù),但作為一個(gè)合格的Java開發(fā)工程師,還是得了解才得

  本文記錄,idea使用JFormDesigner插件進(jìn)行Java GUI 桌面應(yīng)用開發(fā)

  GUI Swing

  圖形化的用戶界面(Graphical User Interface,簡(jiǎn)稱GUI),java提供了一套可以輕松構(gòu)建GUI的工具

  GUI開發(fā)包:
    java.awt 包: 主要提供字體/布局管理器
    javax.Swing 包:主要提供各種組件(窗口/按鈕/文本框),商業(yè)開發(fā)常用
    java.awt.event 包:事件處理,后臺(tái)功能的實(shí)現(xiàn)

  Swing組件

    相對(duì)于AWT而言Swing包中提供了更多的豐富的、快捷的、強(qiáng)大的GUI組件

    大體上包括以下內(nèi)容:window頂層容器(窗口)、container中間容器(面板)、component基本組件(按鈕、標(biāo)簽等)

Java GUI 桌面應(yīng)用開發(fā)(java開發(fā)桌面應(yīng)用程序)

  JFormDesigner

  JFormDesigner,高級(jí)Swing GUI設(shè)計(jì)器,支持MigLayout, JGoodies FormLayout, GroupLayout(自由設(shè)計(jì)),TableLayout和GridBagLayout,這使得它很容易創(chuàng)建專業(yè)外觀的表單。

  通俗的講就是使用這個(gè)插件進(jìn)行拖拉布局,快速創(chuàng)建頁面,但是這個(gè)插件需要購買許可才能使用

  破解教程:https://www.cnblogs.com/ylkh/p/13858433.html

1、打開注冊(cè)機(jī)JFormDesigner_Keygen.exe,選擇idea plug-in,里面的可以隨便填2、點(diǎn)擊Patch,選擇已安裝的插件,生成bak文件(插件位置idea安裝路徑pluginsFormDesigner)3、點(diǎn)擊generate生成JFormDesigner_license.txt文件

Java GUI 桌面應(yīng)用開發(fā)(java開發(fā)桌面應(yīng)用程序)

  代碼編寫

  創(chuàng)建圖形頁面,插件會(huì)自動(dòng)同步生成java文件

Java GUI 桌面應(yīng)用開發(fā)(java開發(fā)桌面應(yīng)用程序)Java GUI 桌面應(yīng)用開發(fā)(java開發(fā)桌面應(yīng)用程序)Java GUI 桌面應(yīng)用開發(fā)(java開發(fā)桌面應(yīng)用程序)

  進(jìn)行拖拉布局

Java GUI 桌面應(yīng)用開發(fā)(java開發(fā)桌面應(yīng)用程序)

  關(guān)鍵點(diǎn):

  1、頂層容器(JFrame)的Name值要為:this

  2、生成的java文件要繼承 javax.swing.JFrame

public class TestFrame extends javax.swing.JFrame{ //省略其他代碼... }

  3、需要進(jìn)行單選的RadioButton,要添加同一個(gè)Button Group

Java GUI 桌面應(yīng)用開發(fā)(java開發(fā)桌面應(yīng)用程序)

  4、defaultCloseOperation要設(shè)置成EXIT,點(diǎn)擊X號(hào)退出頁面時(shí)才會(huì)退出程序

Java GUI 桌面應(yīng)用開發(fā)(java開發(fā)桌面應(yīng)用程序)

  5、綁定事件,給按鈕添加一個(gè)actionPerformed即可

Java GUI 桌面應(yīng)用開發(fā)(java開發(fā)桌面應(yīng)用程序)

  6、關(guān)閉當(dāng)前頁面:this.dispose(); //退出當(dāng)前界面

  7、代碼彈出對(duì)話框:JOptionPane.showMessageDialog(null, "恭喜哦,登錄成功!");// Message 對(duì)話框

  生成的java文件

/* * Created by JFormDesigner on Tue Dec 28 15:24:42 CST 2021 */package cn.huanzi.qch.view;import java.awt.*;import java.awt.event.*;import javax.swing.*;/** * 測(cè)試 */public class TestFrame extends javax.swing.JFrame{ public TestFrame() { initComponents(); setVisible(true);// 顯示 setLocationRelativeTo(null);// JFrame 窗口居中顯示 } public static void main(String[] args) { java.awt.EventQueue.invokeLater(() -> { new TestFrame(); System.out.println("啟動(dòng)成功!"); }); } private void SubmitActionPerformed(ActionEvent e) { // TODO add your code here System.out.println("---------------------------"); System.out.println("姓名:" userNameTestField.getText()); String sex = ""; if (xyRadioButton.isSelected()) { sex = "男"; } else if (xxRadioButton.isSelected()) { sex = "女"; }else if (yyRadioButton.isSelected()) { sex = "不確定"; } System.out.println("性別:" sex); String hobby = ""; if (singCheckBox.isSelected()) { hobby = "唱、"; } if (skipCheckBox.isSelected()) { hobby = "跳、"; } if (rapCheckBox.isSelected()) { hobby = "rap、"; } System.out.println("愛好:" hobby); System.out.println("自我評(píng)價(jià):" selfTextArea.getText()); } private void initComponents() { // JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents label1 = new JLabel(); userNameTestField = new JTextField(); label2 = new JLabel(); label3 = new JLabel(); submit = new JButton(); reset = new JButton(); xxRadioButton = new JRadioButton(); xyRadioButton = new JRadioButton(); yyRadioButton = new JRadioButton(); scrollPane1 = new JScrollPane(); selfTextArea = new JTextArea(); label4 = new JLabel(); label5 = new JLabel(); singCheckBox = new JCheckBox(); skipCheckBox = new JCheckBox(); rapCheckBox = new JCheckBox(); //======== this ======== setBackground(Color.gray); setTitle("Test GUI"); setForeground(SystemColor.windowText); setMinimumSize(new Dimension(300, 200)); setResizable(false); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); Container contentPane = getContentPane(); contentPane.setLayout(null); //---- label1 ---- label1.setText("u59d3u540duff1a"); contentPane.add(label1); label1.setBounds(34, 55, 65, 30); contentPane.add(userNameTestField); userNameTestField.setBounds(119, 55, 200, userNameTestField.getPreferredSize().height); //---- label2 ---- label2.setText("u6027u522buff1a"); contentPane.add(label2); label2.setBounds(34, 95, 65, 30); //---- label3 ---- label3.setText("u81eau6211u8bc4u4ef7uff1a"); contentPane.add(label3); label3.setBounds(34, 165, 65, 30); //---- submit ---- submit.setText("u63d0u4ea4"); submit.addActionListener(e -> SubmitActionPerformed(e)); contentPane.add(submit); submit.setBounds(new Rectangle(new Point(64, 271), submit.getPreferredSize())); //---- reset ---- reset.setText("u91cdu7f6e"); contentPane.add(reset); reset.setBounds(new Rectangle(new Point(219, 271), reset.getPreferredSize())); //---- xxRadioButton ---- xxRadioButton.setText("u5973"); contentPane.add(xxRadioButton); xxRadioButton.setBounds(new Rectangle(new Point(184, 100), xxRadioButton.getPreferredSize())); //---- xyRadioButton ---- xyRadioButton.setText("u7537"); contentPane.add(xyRadioButton); xyRadioButton.setBounds(new Rectangle(new Point(129, 100), xyRadioButton.getPreferredSize())); //---- yyRadioButton ---- yyRadioButton.setText("u4e0du786eu5b9a"); contentPane.add(yyRadioButton); yyRadioButton.setBounds(new Rectangle(new Point(239, 100), yyRadioButton.getPreferredSize())); //======== scrollPane1 ======== { scrollPane1.setViewportView(selfTextArea); } contentPane.add(scrollPane1); scrollPane1.setBounds(117, 165, 202, 71); //---- label4 ---- label4.setText("u6d4bu8bd5u8868u5355"); label4.setFont(label4.getFont().deriveFont(22f)); contentPane.add(label4); label4.setBounds(124, 0, 100, 45); //---- label5 ---- label5.setText("u7231u597duff1a"); contentPane.add(label5); label5.setBounds(34, 130, 65, 30); //---- singCheckBox ---- singCheckBox.setText("u5531"); contentPane.add(singCheckBox); singCheckBox.setBounds(new Rectangle(new Point(129, 135), singCheckBox.getPreferredSize())); //---- skipCheckBox ---- skipCheckBox.setText("u8df3"); contentPane.add(skipCheckBox); skipCheckBox.setBounds(new Rectangle(new Point(184, 135), skipCheckBox.getPreferredSize())); //---- rapCheckBox ---- rapCheckBox.setText("rap"); contentPane.add(rapCheckBox); rapCheckBox.setBounds(239, 135, 50, rapCheckBox.getPreferredSize().height); { // compute preferred size Dimension preferredSize = new Dimension(); for(int i = 0; i < contentPane.getComponentCount(); i ) { Rectangle bounds = contentPane.getComponent(i).getBounds(); preferredSize.width = Math.max(bounds.x bounds.width, preferredSize.width); preferredSize.height = Math.max(bounds.y bounds.height, preferredSize.height); } Insets insets = contentPane.getInsets(); preferredSize.width = insets.right; preferredSize.height = insets.bottom; contentPane.setMinimumSize(preferredSize); contentPane.setPreferredSize(preferredSize); } setSize(400, 365); setLocationRelativeTo(null); //---- buttonGroup2 ---- ButtonGroup buttonGroup2 = new ButtonGroup(); buttonGroup2.add(xxRadioButton); buttonGroup2.add(xyRadioButton); buttonGroup2.add(yyRadioButton); // JFormDesigner - End of component initialization //GEN-END:initComponents } // JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables private JLabel label1; private JTextField userNameTestField; private JLabel label2; private JLabel label3; private JButton submit; private JButton reset; private JRadioButton xxRadioButton; private JRadioButton xyRadioButton; private JRadioButton yyRadioButton; private JScrollPane scrollPane1; private JTextArea selfTextArea; private JLabel label4; private JLabel label5; private JCheckBox singCheckBox; private JCheckBox skipCheckBox; private JCheckBox rapCheckBox; // JFormDesigner - End of variables declaration //GEN-END:variables}

  效果演示

Java GUI 桌面應(yīng)用開發(fā)(java開發(fā)桌面應(yīng)用程序)

  后記

  掌握了基本操作后,下面分享我在大學(xué)時(shí)期做的單機(jī)版五子棋、以及java課程實(shí)訓(xùn)作品:圖書管理系統(tǒng)

  單機(jī)版五子棋

  猛戳:Java GUI 單機(jī)版五子棋

Java GUI 桌面應(yīng)用開發(fā)(java開發(fā)桌面應(yīng)用程序)

  圖書管理系統(tǒng)

  數(shù)據(jù)庫用mysql,GUI圖形化頁面實(shí)現(xiàn)用戶登錄后對(duì)圖書進(jìn)行CRUD操作

Java GUI 桌面應(yīng)用開發(fā)(java開發(fā)桌面應(yīng)用程序)

  登錄頁面

Java GUI 桌面應(yīng)用開發(fā)(java開發(fā)桌面應(yīng)用程序)

  圖書管理

Java GUI 桌面應(yīng)用開發(fā)(java開發(fā)桌面應(yīng)用程序)Java GUI 桌面應(yīng)用開發(fā)(java開發(fā)桌面應(yīng)用程序)

  圖書類別管理

Java GUI 桌面應(yīng)用開發(fā)(java開發(fā)桌面應(yīng)用程序)Java GUI 桌面應(yīng)用開發(fā)(java開發(fā)桌面應(yīng)用程序)

  關(guān)于我們

Java GUI 桌面應(yīng)用開發(fā)(java開發(fā)桌面應(yīng)用程序)

版權(quán)聲明

作者:huanzi-qch

出處:https://www.cnblogs.com/huanzi-qch

若標(biāo)題中有“轉(zhuǎn)載”字樣,則本文版權(quán)歸原作者所有。若無轉(zhuǎn)載字樣,本文版權(quán)歸作者所有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,否則保留追究法律責(zé)任的權(quán)利.

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。

(0)
上一篇 2024年5月1日 下午1:25
下一篇 2024年5月1日 下午1:36

相關(guān)推薦

  • 委托項(xiàng)目管理辦法

    委托項(xiàng)目管理辦法 為規(guī)范委托項(xiàng)目的管理,保證項(xiàng)目的質(zhì)量,提高項(xiàng)目的效率,我們制定以下委托項(xiàng)目管理辦法。 第一章 總則 第一條 為規(guī)范委托項(xiàng)目的管理,保證項(xiàng)目的質(zhì)量,提高項(xiàng)目的效率,…

    科研百科 2024年5月24日
    118
  • 項(xiàng)目時(shí)間管理的主要內(nèi)容

    項(xiàng)目時(shí)間管理是項(xiàng)目管理的核心內(nèi)容,包括制定項(xiàng)目計(jì)劃,分配任務(wù),控制進(jìn)度,協(xié)調(diào)資源,以及最終實(shí)現(xiàn)項(xiàng)目目標(biāo)的過程。在項(xiàng)目中,時(shí)間管理的重要性不言而喻,因?yàn)槿绻麤]有合理的時(shí)間管理,項(xiàng)目可…

    科研百科 2025年1月13日
    1
  • 2023年最新武漢軟件開發(fā)外包公司排名前十!(武漢十大軟件外包公司)

    現(xiàn)在企業(yè)都在逐步實(shí)現(xiàn)數(shù)字化轉(zhuǎn)型,公司自主創(chuàng)立研發(fā)團(tuán)隊(duì)成本高,效率低,有很多公司會(huì)選擇尋找軟件外包公司合作,減少開發(fā)成本。那么,武漢有哪些軟件開發(fā)外包公司呢? 以下是小編整理的202…

    科研百科 2023年4月20日
    1.8K
  • 北京進(jìn)度項(xiàng)目管理軟件

    北京進(jìn)度項(xiàng)目管理軟件 北京進(jìn)度項(xiàng)目管理軟件是一款功能強(qiáng)大、易于使用、安全可靠的軟件,用于幫助項(xiàng)目經(jīng)理和開發(fā)人員跟蹤和管理項(xiàng)目進(jìn)度和成本。在北京進(jìn)度項(xiàng)目中,軟件的重要性不言而喻,因?yàn)?#8230;

    科研百科 2024年7月27日
    39
  • 都有哪些比較好用的項(xiàng)目管理軟件?(都有哪些比較好用的項(xiàng)目管理軟件)

    項(xiàng)目管理涉及有效的計(jì)劃和對(duì)工作的系統(tǒng)管理,但很多工具可以使項(xiàng)目管理更有效、更高效。 那么都有哪些較好用的項(xiàng)目管理軟件來幫助實(shí)現(xiàn)事半功倍呢?今天為大家分享5款,涉及軟件項(xiàng)目管理、通用…

    科研百科 2024年4月25日
    68
  • 人力資源管理項(xiàng)目總結(jié)

    人力資源管理項(xiàng)目總結(jié) 隨著企業(yè)的快速發(fā)展,人力資源管理的重要性也越來越凸顯。在過去的幾年里,我們公司通過實(shí)施一系列的人力資源管理項(xiàng)目,取得了良好的效果,提高了員工的工作效率和滿意度…

    科研百科 2024年9月16日
    21
  • 恩施州科技局農(nóng)村科研項(xiàng)目恩施州科技局農(nóng)村科研項(xiàng)目

    恩施州科技局農(nóng)村科研項(xiàng)目 隨著經(jīng)濟(jì)的發(fā)展和城市化進(jìn)程的加速,農(nóng)村科技的發(fā)展面臨著巨大的挑戰(zhàn)。為了推動(dòng)農(nóng)村科技的發(fā)展,恩施州科技局開展了一系列的農(nóng)村科研項(xiàng)目,旨在提高農(nóng)民的生產(chǎn)力和生…

    科研百科 2024年6月18日
    37
  • 光伏系統(tǒng)10kv典型設(shè)計(jì)

    光伏系統(tǒng)10kv典型設(shè)計(jì) 隨著能源意識(shí)的不斷提高,人們對(duì)能源的需求也越來越高。而光伏系統(tǒng)作為一種新型的能源系統(tǒng),被越來越多的應(yīng)用到各個(gè)領(lǐng)域。在10kv電壓等級(jí)下,光伏系統(tǒng)的設(shè)計(jì)成為…

    科研百科 2024年10月1日
    18
  • 甘州區(qū)上秦鎮(zhèn)李家灣村“五步工作法”提升黨建引領(lǐng)鄉(xiāng)村治理水平

    甘州融媒訊 甘州區(qū)上秦鎮(zhèn)李家灣村推行“抓黨建、聚人才、拓渠道、聯(lián)黨群、優(yōu)服務(wù)”五步工作法,創(chuàng)新實(shí)行集體經(jīng)濟(jì)公司化管理模式,積極推動(dòng)綠色蔬菜產(chǎn)業(yè)鏈融合發(fā)展,走出了一條屬于自己的村集體…

    科研百科 2023年7月8日
    89
  • 領(lǐng)域科研項(xiàng)目

    領(lǐng)域科研項(xiàng)目:人工智能在醫(yī)療保健領(lǐng)域的應(yīng)用 隨著人工智能技術(shù)的不斷發(fā)展,其在醫(yī)療保健領(lǐng)域的應(yīng)用也越來越廣泛。人工智能可以幫助醫(yī)生更快速、準(zhǔn)確地診斷疾病,并制定最佳的治療方案。本文將…

    科研百科 2025年2月20日
    0