java怎麼寫按鈕點擊事件(jsp頁面按鈕點擊事件用java)

本文目錄一覽:

java怎麼給按鈕添加事件

類名後面添加一個actionListener 接口

解決方法:

(1)public void actionPerformed(ActionEvent e) {

}

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

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

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

(4) 重寫ButtonClickListener函數:

Java 添加按鈕點擊事件

xml文件代碼如下:

Button

android:id=”@+id/button1″

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:text=”Button1″ /

Button

android:id=”@+id/button2″

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:text=”Button2″ /

四種方法分述如下:

匿名內部類:

public class TestButtonActivity extends Activity {

Button btn1, btn2;

Toast tst;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_test_button);

btn1 = (Button) findViewById(R.id.button1);

btn2 = (Button) findViewById(R.id.button2);

btn1.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Toast tst = Toast.makeText(TestButtonActivity.this, “111111111”, Toast.LENGTH_SHORT);

tst.show();

}

});

btn2.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Toast tst = Toast.makeText(TestButtonActivity.this, “222222222”, Toast.LENGTH_SHORT);

tst.show();

}

});

}

}

自定義單擊事件監聽類:

public class TestButtonActivity extends Activity {

Button btn1, btn2;

Toast tst;

class MyClickListener implements OnClickListener {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

switch (v.getId()) {

case R.id.button1:

tst = Toast.makeText(TestButtonActivity.this, “111111111”, Toast.LENGTH_SHORT);

tst.show();

break;

case R.id.button2:

tst = Toast.makeText(TestButtonActivity.this, “222222222”, Toast.LENGTH_SHORT);

tst.show();

break;

default:

break;

}

}

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_test_button);

btn1 = (Button) findViewById(R.id.button1);

btn2 = (Button) findViewById(R.id.button2);

btn1.setOnClickListener(new MyClickListener());

btn2.setOnClickListener(new MyClickListener());

}

}

Activity繼承View.OnClickListener,由Activity實現OnClick(View view)方法,在OnClick(View view)方法中用switch-case對不同id代表的button進行相應的處理

public class TestButtonActivity extends Activity implements OnClickListener {

Button btn1, btn2;

Toast tst;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_test_button);

btn1 = (Button) findViewById(R.id.button1);

btn2 = (Button) findViewById(R.id.button2);

btn1.setOnClickListener(this);

btn2.setOnClickListener(this);

}

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

switch (v.getId()) {

case R.id.button1:

tst = Toast.makeText(this, “111111111”, Toast.LENGTH_SHORT);

tst.show();

break;

case R.id.button2:

tst = Toast.makeText(this, “222222222”, Toast.LENGTH_SHORT);

tst.show();

break;

default:

break;

}

}

}

最後一種是我今天看到的一種寫法,在XML文件中逗顯示指定按鈕的onClick屬性,這樣點擊按鈕時會利用反射的方式調用對應Activity中的click()方法地

Button

android:id=”@+id/button1″

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:onClick=”onClick”

android:text=”Button1″ /

Button

android:id=”@+id/button2″

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:onClick=”onClick”

android:text=”Button2″ /

這裡在輸完android:的時候按下 Alt+/ 會有 onClick 屬性的提示, 但輸入到 android:onClick=逗 的地方按下 Alt+/ 並沒有提示 onClick 選項,讓我突然覺得這裡好像有點問題。

public class TestButtonActivity extends Activity {

Button btn1, btn2;

Toast tst;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_test_button);

}

// 注意 這裡沒有 @Override 標籤

public void onClick(View v) {

// TODO Auto-generated method stub

switch (v.getId()) {

case R.id.button1:

tst = Toast.makeText(this, “111111111”, Toast.LENGTH_SHORT);

tst.show();

break;

case R.id.button2:

tst = Toast.makeText(this, “222222222”, Toast.LENGTH_SHORT);

tst.show();

break;

default:

break;

}

}

}

這種寫法整個代碼中都不用聲明button就可以實現button的單擊事件。

java 按鈕事件怎麼弄

1、定義

2、增加監聽器,類implement ActionListener接口

3、監聽內容實現,在方法actionPerformd(ActionEvent e)中

使用e.getsouce==對應組件的名字,或者e.getCommand();具體查下API,或者使用eclipse等工具,就更方便了

private JButton button3 = new JButton(“保存”);

private JTextField jtf = new JTextField();

button3.addActionListener(this);

public void actionPerformed(Event e){

if(e.getSource()==button3){

System.out.println(jtf.getText());

}

}

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

 }

}

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
MCKNF的頭像MCKNF
上一篇 2025-01-16 15:46
下一篇 2025-01-16 15:47

相關推薦

  • 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 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

發表回復

登錄後才能評論