java按鈕事件,java窗體按鈕事件

本文目錄一覽:

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的實例

 }

}

java按鈕的點擊事件是什麼意思

java中,按鈕點擊時會觸發你的點擊函數onclick,你在點擊的函數中寫你的代碼就可以了,比如你說的跳轉另一個面板。

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怎麼給按鈕添加事件

類名後面添加一個actionListener 介面

解決方法:

(1)public void actionPerformed(ActionEvent e) {

}

這麼一個方法,然後再在構造方法裡面添加註冊事件,button.addActionListener(this);

(2) 在res/layout中的activity_main.xml添加一個按鈕,命名為button1。

(3)在MainActivity.Java中添加按鈕事件綁定:

(4) 重寫ButtonClickListener函數:

java按鈕被點擊事件

添加按鈕監聽。回見內容寫成方法,然後調用即可。大概像下面這樣

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

public class Test {

public static void main(String [] args){

JButton A = new JButton(“A”);

JButton B = new JButton(“B”);

JButton C = new JButton(“C”);

A.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

methodA();

}

});

B.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

methodB();

}

});

C.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

methodA();

methodB();

}

});

}

public static void methodA(){

//執行A方法

}

public static void methodB(){

//執行B方法

}

}

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
IDSE的頭像IDSE
上一篇 2024-10-27 23:52
下一篇 2024-10-27 23:52

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

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

    編程 2025-04-29
  • Java JsonPath 效率優化指南

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

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

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

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

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

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

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

    編程 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
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論