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

? ? ?

Java GUI 桌面應用開發(java開發桌面應用程序)

  前言

  雖然現在已經很少項目會涉及GUI技術,但作為一個合格的Java開發工程師,還是得了解才得

  本文記錄,idea使用JFormDesigner插件進行Java GUI 桌面應用開發

  GUI Swing

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

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

  Swing組件

    相對于AWT而言Swing包中提供了更多的豐富的、快捷的、強大的GUI組件

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

Java GUI 桌面應用開發(java開發桌面應用程序)

  JFormDesigner

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

  通俗的講就是使用這個插件進行拖拉布局,快速創建頁面,但是這個插件需要購買許可才能使用

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

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

Java GUI 桌面應用開發(java開發桌面應用程序)

  代碼編寫

  創建圖形頁面,插件會自動同步生成java文件

Java GUI 桌面應用開發(java開發桌面應用程序)Java GUI 桌面應用開發(java開發桌面應用程序)Java GUI 桌面應用開發(java開發桌面應用程序)

  進行拖拉布局

Java GUI 桌面應用開發(java開發桌面應用程序)

  關鍵點:

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

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

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

  3、需要進行單選的RadioButton,要添加同一個Button Group

Java GUI 桌面應用開發(java開發桌面應用程序)

  4、defaultCloseOperation要設置成EXIT,點擊X號退出頁面時才會退出程序

Java GUI 桌面應用開發(java開發桌面應用程序)

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

Java GUI 桌面應用開發(java開發桌面應用程序)

  6、關閉當前頁面:this.dispose(); //退出當前界面

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

  生成的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.*;/** * 測試 */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("啟動成功!"); }); } 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("自我評價:" 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 桌面應用開發(java開發桌面應用程序)

  后記

  掌握了基本操作后,下面分享我在大學時期做的單機版五子棋、以及java課程實訓作品:圖書管理系統

  單機版五子棋

  猛戳:Java GUI 單機版五子棋

Java GUI 桌面應用開發(java開發桌面應用程序)

  圖書管理系統

  數據庫用mysql,GUI圖形化頁面實現用戶登錄后對圖書進行CRUD操作

Java GUI 桌面應用開發(java開發桌面應用程序)

  登錄頁面

Java GUI 桌面應用開發(java開發桌面應用程序)

  圖書管理

Java GUI 桌面應用開發(java開發桌面應用程序)Java GUI 桌面應用開發(java開發桌面應用程序)

  圖書類別管理

Java GUI 桌面應用開發(java開發桌面應用程序)Java GUI 桌面應用開發(java開發桌面應用程序)

  關于我們

Java GUI 桌面應用開發(java開發桌面應用程序)

版權聲明

作者:huanzi-qch

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

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

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

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

相關推薦