java設計用戶圖像界面(java設計用戶圖像界面不顯示)

本文目錄一覽:

java設計用戶圖像界面?

程序運行效果圖

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

/**

* 窗口繼承自JFrame.

* 為了方便事件處理, 實現了ActionListener

*/

public class ScoreApp extends JFrame implements ActionListener {

  //需要調用的文本框組件

  private JTextField tfCh, tfMath, tfEn, tfTotal, tfAvg;

  private static final Font MY_FONT = new Font(null, Font.PLAIN, 16);

  public ScoreApp() {

      //初始化組件

      initControls();

      //初始化窗口

      initWindow();

  }

  private void initControls() {

      //頂部

      JLabel info = new JLabel(“請輸入三門課程的成績”, JLabel.CENTER);

      info.setFont(new Font(null, Font.BOLD, 25));

      this.add(info, BorderLayout.NORTH);

      //中部: 是一個5行2列的表格布局;水平間距垂直間距都是10

      JPanel jpCenter = new JPanel(new GridLayout(5, 2, 10, 10));

      JLabel jlCh = new JLabel(“語文”, JLabel.CENTER);

      tfCh = new JTextField();

      tfCh.setPreferredSize(new Dimension(150, 30));

      JLabel jlMath = new JLabel(“數學”, JLabel.CENTER);

      tfMath = new JTextField();

      JLabel jlEh = new JLabel(“英語”, JLabel.CENTER);

      tfEn = new JTextField();

      JLabel jlTotal = new JLabel(“總分”, JLabel.CENTER);

      tfTotal = new JTextField();

      //總分需要計算獲得,不許直接編輯

      tfTotal.setEditable(false);

      //不許編輯後,默認會變成灰色, 重新設置背景色為白色

      tfTotal.setBackground(Color.WHITE);

      JLabel jlAvg = new JLabel(“平均分”, JLabel.CENTER);

      tfAvg = new JTextField();

      //平均分同樣需要計算獲得,不許編輯

      tfAvg.setEditable(false);

      tfAvg.setBackground(Color.WHITE);

      addAll(jpCenter, jlCh, tfCh, jlMath, tfMath, jlEh, tfEn, jlTotal, tfTotal, jlAvg, tfAvg);

      this.add(jpCenter, BorderLayout.CENTER);

      //底部

      JPanel jpBottom = new JPanel();

      //美化下,創建個邊框

      jpBottom.setBorder(BorderFactory.createEtchedBorder());

      JButton btnCompute = new JButton(“計算”);

      btnCompute.addActionListener(this);

      JButton btnReset = new JButton(“重置”);

      btnReset.addActionListener(this);

      JButton btnExit = new JButton(“退出”);

      btnExit.addActionListener(this);

      addAll(jpBottom, btnCompute,btnReset, btnExit);

      this.add(jpBottom, BorderLayout.SOUTH);

  }

  private void initWindow() {

      setTitle(“計算學生成績的總分和平均分”);

      setSize(520, 380);

      setLocationRelativeTo(null);

      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  }

  /**

   * 向第一個容器里添加組件

   * @param pane

   * @param controls

   */

  private void addAll(JComponent pane, JComponent… controls) {

      for (JComponent control : controls) {

          control.setFont(MY_FONT);

          pane.add(control);

      }

  }

  /**

   * 事件處理. 處理按鈕的點擊事件

   * @param e

   */

  @Override

  public void actionPerformed(ActionEvent e) {

      //判斷是哪一個按鈕被點擊了,然後進行對應的處理

      String cmd = e.getActionCommand();

      //如果是退出按鈕被點擊那麼退出

      if (cmd.equals(“退出”)) {

          System.exit(0);

          //如果是計算按鈕被點擊,那麼計算結果

      } else if (cmd.equals(“計算”)) {

          double sum = 0, avg = 0;

          try {

              double scoreCh = Double.parseDouble(tfCh.getText());

              double scoreMath = Double.parseDouble(tfMath.getText());

              double scoreEn = Double.parseDouble(tfEn.getText());

              sum = scoreCh + scoreMath + scoreEn;

              avg = sum / 3.0;

          } catch (NumberFormatException ex) {

              JOptionPane.showMessageDialog(this, “請確認輸入的都是數字,不能是空白,字母,符號等”);

              return;

          }

          tfTotal.setText(String.valueOf(sum));

          //平均分 四捨五入保留2位

          tfAvg.setText(String.format(“%.2f”, avg));

          //如果點擊了重置按鈕 ,那麼清空文本框的內容

      } else if (cmd.equals(“重置”)) {

          tfCh.setText(“”);

          tfMath.setText(“”);

          tfEn.setText(“”);

          tfTotal.setText(“”);

          tfAvg.setText(“”);

      }

  }

  public static void main(String[] args) {

      //創建窗口設置可見

      SwingUtilities.invokeLater(() –

              new ScoreApp().setVisible(true)

      );

  }

}

Java編寫圖形用戶界面程序

運行如圖

參考代碼如下

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class RegDemo extends JFrame implements ActionListener{

JTextField jtf;

JPasswordField jpf;

public RegDemo() {

        //組件的創建, 和布局安排

JPanel jpc = new JPanel();//默認流式布局

JPanel jp1 = new JPanel(new GridLayout(2, 2,5,10));//網格布局

jp1.setBorder(BorderFactory.createTitledBorder(“用戶註冊”));

JLabel jl1 = new JLabel(“用戶名:”);

jtf = new JTextField(10);

JLabel jl2 = new JLabel(“密碼:”);

jpf = new JPasswordField(10);

                jpf.setEchoChar(‘*’);//用*號來隱藏密碼的顯示

jp1.add(jl1);jp1.add(jtf);

jp1.add(jl2);jp1.add(jpf);

jpc.add(jp1);

add(jpc);

JButton jb1 = new JButton(“提交”);

jb1.addActionListener(this);

jb1.setActionCommand(“yes”);

JButton jb2 = new JButton(“取消”);

jb2.addActionListener(this);

jb2.setActionCommand(“no”);

JPanel jp2 = new JPanel();

jp2.add(jb1);jp2.add(jb2);

add(jp2,BorderLayout.SOUTH);

setTitle(“用戶註冊界面”);

        setSize(280, 280);

        setLocationRelativeTo(null);//窗口居中

        setDefaultCloseOperation(EXIT_ON_CLOSE);//

        setVisible(true);

}

public static void main(String[] args) {

new RegDemo();

}

@Override

public void actionPerformed(ActionEvent e) {

if(e.getActionCommand().equals(“yes”)){

String name  = jtf.getText().trim();

String pwd = new String(jpf.getPassword());

if(name.equals(“”)||pwd.equals(“”)){

JOptionPane.showMessageDialog(this, “你還沒有輸入用戶名或者密碼”);

}else{

JOptionPane.showMessageDialog(this, “註冊成功!用戶名”+name+”,密碼”+pwd);

}

}else{

jtf.setText(“”);

jpf.setText(“”);

}

}

}

在java中,設計圖形用戶界面需要經歷哪幾個基本步驟

1, 分析業務需求, 理順業務邏輯

2, 根據業務需要考慮使用何種容器(JFrame ,Frame ,JWindow..) 需要的數量.

3, 每個容器(窗口)使用組件

4.組件使用何種布局方式(邊界布局,絕對布局,網格布局..),排列在容器(窗口)中

5.組件中需要響應那些事件, 把事件響應代碼寫好,然後綁定到組件上(addListener…)

6.調試,測試

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/303582.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-31 11:50
下一篇 2024-12-31 11:50

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件並生成完整的圖像

    OBJ格式是一種用於表示3D對象的標準格式,通常由一組頂點、面和紋理映射坐標組成。在本文中,我們將討論如何將多個OBJ文件拼接在一起,生成一個完整的3D模型。 一、讀取OBJ文件 …

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • 如何實現圖像粘貼到蒙版

    本文將從多個方面介紹圖像粘貼到蒙版的實現方法。 一、創建蒙版 首先,在HTML中創建一個蒙版元素,用於接收要粘貼的圖片。 <div id=”mask” style=”widt…

    編程 2025-04-29

發表回復

登錄後才能評論