java按鈕事件例子(java窗體按鈕事件)

本文目錄一覽:

java按鈕事件

調用順序:

單擊按鈕-調用actionPerformed-調用repaint-調用paint。

java按鈕觸發事件問題

可以使用按鈕單擊事件,改變其它組件的狀態,例如下面是一個計數器的例子:

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

public class Demo7 extends JFrame {

private int count = 1;

public Demo7() {

this.setSize(600, 400);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setLocationRelativeTo(null);

this.setLayout(new FlowLayout());

JLabel label = new JLabel(String.valueOf(count));

this.add(label);

JButton button = new JButton(“Click Me!”);

// 按鈕單擊事件,改變 Label 顯示文本

button.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

count++;

label.setText(String.valueOf(count));

}}

);

this.add(button);

}

public static void main(String[] args) {

new Demo7().setVisible(true);

}

}

Java給按鈕添加事件

贊一個, 提前學習, 做好預先 , 是個好習慣.

java圖形界面主要有AWT, SWING, SWT, JavaFx等技術

JButton  (按鈕)是SWING裏面很常用的組件. 直接添加按鈕到窗口,並不會產生任何交互效果.

要想產生交互效果,就需要了解awt,swing的事件處理機制:

事件:用戶對組件的一個操作,稱之為一個事件;

事件源:發生事件的組件就是事件源;

事件處理器:負責處理事件的方法;

比如 點擊按鈕,彈出HelloWord,

那麼 事件是 點擊按鈕 ,事件源就是按鈕,事件處理器就會彈出對話框,顯示HelloWord.

常用的事件(Event) 有:

鼠標事件(MouseEvent: 鼠標按下,移入,移除,滾輪..)

鍵盤事件(KeyEvent: 鍵盤按下,釋放..)

動作事件( ActionEvent:當按鈕、菜單項被點擊,在JTextField中按Enter鍵時…觸發該事件。)

按鈕添加接收器, 不同的事件,接收器不同.

比如ActionEvent 那麼他的接收器是ActionListener

KeyEvent 那麼他的接收器就是KeyListener

基礎知識,大概就是這些.

所以想要JButton產生交互,你就需要給他添加事件處理器,當發生這些事件時,出發該處理器,進行處理.

寫2個例子,第一個簡單的:點擊按鈕,彈出Hello World

//導入3個圖形界面,常用的包

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class ButtonDemo extends JFrame {

 

 public ButtonDemo() {

  

  JButton jbHello = new JButton(“Hello”);//按鈕

  jbHello.addActionListener(new ActionListener() {//給按鈕添加事件接收器

   @Override

   public void actionPerformed(ActionEvent e) {//接受到事件後,進行下面的處理

    System.out.println(“Hello World”);// 控制台打印輸出

    JOptionPane.showMessageDialog(null, “Hello World”);// 彈出對話框,顯示Hello World

   }

  });

  add(jbHello);//把按鈕添加到窗體

  

  // 窗體屬性的設置

  setLayout(new FlowLayout());// 窗體流式布局, 按添加順序從左到右排列組件

  setSize(300, 200);// 寬300像素,高200

  setLocationRelativeTo(null);// 窗體放在顯示器中間

  setTitle(“HelloWord”);// 窗體的標題

  setDefaultCloseOperation(EXIT_ON_CLOSE);// 點擊窗體右上角的關閉按鈕時,結束程序

  setVisible(true);// 窗體可見

 }

 public static void main(String[] args) {

  new ButtonDemo();

 }

}

看明白了吧, addActionListener是關鍵

進階版 :加法計算器.  代碼稍微長一點,.但注釋很多

參考代碼如下

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

//AddFrame繼承自JFrame類, 並且實現了ActionListener 接口

public class AddFrame extends JFrame implements ActionListener {

 // 組件

 JTextField jtf1, jtf2, jtf3;// 文本框,用於:顯示數字

 JButton jbAdd;// 按鈕,用於:當點擊按鈕時,計算出加法的結果

 JButton jbClear;// 按鈕, 用於,清空數字

 public AddFrame() {// 構造方法

  // 初始化組件

  jtf1 = new JTextField(5);// 長度為5的文本框

  JLabel jl = new JLabel(“+”);//文字標籤

  jtf2 = new JTextField(5);

  jtf3 = new JTextField(6);

  jtf3.setEditable(false);

  jbAdd = new JButton(“=”);

  jbAdd.addActionListener(this);//因為本類已經實現了ActionListener接口,所以添加事件的接收器就是自己(this)

  jbClear = new JButton(“清除”);

  jbClear.addActionListener(this);

  

  //把組件,添加到窗體

  add(jtf1);

  add(jl);

  add(jtf2);

  add(jbAdd);

  add(jtf3);

  add(jbClear);

  

  // 窗體屬性的設置

  setLayout(new FlowLayout());//窗體流式布局, 按添加順序從左到右排列組件

  setSize(380, 100);// 寬380像素,高100

  setLocationRelativeTo(null);// 窗體放在顯示器中間

  setTitle(“加法計算器”);// 窗體的標題

  setDefaultCloseOperation(EXIT_ON_CLOSE);// 點擊窗體右上角的關閉按鈕時,結束程序

  setVisible(true);// 窗體可見

 }

 /*

  *  實現ActionListener接口 就必須重寫actionPerformed方法

  */

 @Override

 public void actionPerformed(ActionEvent e) {// 當事件產生後,就會執行actionPerformed里的方法

  JButton jbTemp= (JButton) e.getSource();//得到事件源

  

  if(jbTemp==jbAdd) {//如果是從jbAdd產生的事件.那麼執行加法操作

   //因為是簡單案例,就不判斷和處理,用戶亂輸入字母漢字等情況,導致的異常了

   int x = Integer.parseInt(jtf1.getText());//從文本框1得到字符串,並轉化成數字

   int y = Integer.parseInt(jtf2.getText());

   jtf3.setText(x+y+””);//計算2個數的和,並顯示在文本框3上

   

  }else if(jbTemp==jbClear) {//如果事件源是 jbClear,那麼清除文本框的文字

   

   jtf1.setText(“”);

   jtf2.setText(“”);

   jtf3.setText(“”);

  }

  

 }

 // main方法

 public static void main(String[] args) {

  new AddFrame();//創建一個AddFrame的實例

 }

}

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

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

相關推薦

  • 抖音外放親媽下葬事件的背後真相

    近期,一段抖音外放親媽下葬的視頻引發廣泛關注和熱議。不少人對這個事件感到震驚和憤怒,認為這種行為非常不尊重親人,觸犯了社會公德和家庭道德。但是,事情真相到底是什麼呢?我們有必要從多…

    編程 2025-04-28
  • Python計數循環例子用法介紹

    在這篇文章中,我們將為您提供有關Python計數循環的一些詳細信息,並為您提供示例和代碼,讓您更深入地了解如何使用Python進行計數循環。 一、什麼是計數循環? 計數循環是編程中…

    編程 2025-04-28
  • Access執行按鈕的實現方法及應用場景

    本文將詳細介紹Access執行按鈕的實現方法及其在實際應用場景中的使用方法。 一、創建Access執行按鈕的方法 在Access中,創建執行按鈕的方法非常簡單。只需要按照以下步驟進…

    編程 2025-04-27
  • cc.director.on事件監聽器

    本文將從多個方面詳細介紹Cocos Creator中的cc.director.on事件監聽器。 一、cc.director.on的作用和用法 cc.director.on是Coco…

    編程 2025-04-27
  • python運行按鈕在哪

    Python運行按鈕指的是在集成開發環境(IDE)中開發者用來運行代碼的按鈕,請看下面的代碼示例: print(“Hello, World!”) 如果這段代碼保存為名為hello_…

    編程 2025-04-27
  • 如何在LinearLayout中使按鈕居中

    在LinearLayout布局中,如果想要讓按鈕居中,那麼可以通過以下幾種方法實現。 一、gravity屬性 在LinearLayout中,可以使用gravity屬性將其子控件相對…

    編程 2025-04-27
  • JavaScript點擊事件全方位指南

    一、click事件基礎 click事件是最常用的鼠標事件之一,當元素被單擊時觸發。click事件適用於大多數HTML元素(<a>、<button>)和SVG…

    編程 2025-04-25
  • 詳解JavaScript onclick事件

    一、onclick的基礎知識 onclick事件是JavaScript中最常用的事件之一,它在用戶點擊某個HTML元素時觸發。通常我們可以通過給元素添加一個onclick屬性來綁定…

    編程 2025-04-25
  • 探究keyup和keydown事件

    一、介紹 在前端開發中,代碼執行通常與用戶操作有關。用戶操作中,常用的是鍵盤事件,其中keydown和keyup事件是最為常見的兩種。這兩種事件都可以用來監測用戶按鍵,但它們有不同…

    編程 2025-04-25
  • CSS 事件穿透

    在 Web 開發中,CSS 負責網頁的樣式,而 JavaScript 負責網頁的行為。雖然兩者有不同的職責,但在實際的開發過程中,我們經常會遇到將二者結合起來的場景。比如需要通過 …

    編程 2025-04-25

發表回復

登錄後才能評論