最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java?入門圖形用戶界面設(shè)計(jì)之事件處理下

 更新時(shí)間:2022年02月16日 15:46:09   作者:小旺不正經(jīng)  
圖形界面(簡(jiǎn)稱GUI)是指采用圖形方式顯示的計(jì)算機(jī)操作用戶界面。與早期計(jì)算機(jī)使用的命令行界面相比,圖形界面對(duì)于用戶來(lái)說(shuō)在視覺上更易于接受,本篇精講Java語(yǔ)言中關(guān)于圖形用戶界面的事件處理

Java程序設(shè)計(jì) 圖形用戶界面 【八】事件處理下

動(dòng)作事件及監(jiān)聽處理

想讓按鈕變得有意義,就必須使用事件處理

使用ActionListener接口處理按鈕的動(dòng)作事件

方法作用
void actionPerformed(ActionEvent e)發(fā)生操作時(shí)調(diào)用

使用ActionListener監(jiān)聽

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

class ActionHandle{
    private JFrame frame = new JFrame("一");
    private JButton but = new JButton("顯示");
    private JLabel lab = new JLabel();
    private JTextField text = new JTextField(10);
    private JPanel pan = new JPanel();
    public ActionHandle(){
        Font font = new Font("Serief",Font.ITALIC+Font.BOLD,28);
        lab.setFont(font);
        lab.setText("請(qǐng)輸入信息");
        but.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if(e.getSource()==but){
                    lab.setText(text.getText());
                }
            }
        });
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(1);
            }
        });
        frame.setLayout(new GridLayout(2,1));
        pan.setLayout(new GridLayout(1,2));
        pan.add(text);
        pan.add(but);
        frame.add(pan);
        frame.add(lab);
        frame.pack();
        frame.setVisible(true);
    }
}
public class Hello {
    public static void main(String[] args) {
        new ActionHandle();
    }
}

image-20220212125346032

image-20220212125358374

if(e.getSource()==but){} //判斷觸發(fā)源是否為按鈕

用戶登錄操作

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

class LoginCheck{
    private String username;
    private String password;
    public LoginCheck(String username,String password){
        this.username=username;
        this.password=password;
    }
    public boolean validate(){
        if("abc".equals(username)&&"123".equals(password)){
            return true;
        }else {
            return false;
        }
    }
}
class ActionHandle{
    private JFrame frame = new JFrame("一");
    private JButton sub = new JButton("登錄");
    private JButton res = new JButton("重置");
    private JLabel nameLab = new JLabel("用戶名:");
    private JLabel passLab = new JLabel("密  碼:");
    private JLabel infoLab = new JLabel("用戶登錄");
    private JTextField username = new JTextField();
    private JPasswordField password = new JPasswordField();
    public ActionHandle(){
        Font font = new Font("Serief",Font.BOLD,12);
        infoLab.setFont(font);
        sub.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if(e.getSource()==sub){
                    String uname = username.getText();
                    String upass = new String(password.getPassword());
                    LoginCheck log = new LoginCheck(uname,upass);
                    if(log.validate()){
                        infoLab.setText("登錄成功");
                    }else {
                        infoLab.setText("登錄失敗");
                    }
                }
                if(e.getSource()==res){
                    username.setText("");
                    password.setText("");
                    infoLab.setText("用戶登錄");
                }
            }
        });
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(1);
            }
        });
        frame.setLayout(null);
        nameLab.setBounds(5,5,60,20);
        passLab.setBounds(5,30,60,20);
        infoLab.setBounds(5,65,220,30);
        username.setBounds(65,5,100,20);
        password.setBounds(65,30,100,20);
        sub.setBounds(165,5,60,20);
        res.setBounds(165,30,60,20);
        frame.add(nameLab);
        frame.add(passLab);
        frame.add(infoLab);
        frame.add(username);
        frame.add(password);
        frame.add(sub);
        frame.add(res);
        frame.setSize(280,130);
        frame.setVisible(true);
    }
}
public class Hello {
    public static void main(String[] args) {
        new ActionHandle();
    }
}

image-20220212132501548

image-20220212132521043

鍵盤事件及監(jiān)聽處理

KeyListener接口對(duì)鍵盤的操作進(jìn)行監(jiān)聽

方法作用
void keyTyped(KeyEvent e)鍵入某個(gè)鍵時(shí)調(diào)用
void keyPressed(KeyEvent e)鍵盤按下時(shí)調(diào)用
void keyReleased(KeyEvent e)鍵盤松開時(shí)調(diào)用

通過(guò)KeyEvent取得鍵盤鍵入的內(nèi)容

方法作用
public char getKeyChar()返回鍵入的字符,只針對(duì)于keyTyped有意義
public int getKeyCode()返回輸入字符的鍵碼
public static String getKeyText(int keyCode)返回此鍵的信息

實(shí)現(xiàn)鍵盤監(jiān)聽

import javax.swing.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

class MyKeyHandle extends JFrame implements KeyListener{
    private JTextArea text = new JTextArea();
    public MyKeyHandle(){
        super.setTitle("一");
        JScrollPane scr = new JScrollPane(text);
        scr.setBounds(5,5,300,200);
        super.add(scr);
        text.addKeyListener(this);
        super.setSize(310,210);
        super.setVisible(true);
        super.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(1);
            }
        });
    }

    @Override
    public void keyTyped(KeyEvent e) {
        text.append("輸入的內(nèi)容是:"+e.getKeyChar()+"\n");
    }

    @Override
    public void keyPressed(KeyEvent e) {
        text.append("鍵盤"+KeyEvent.getKeyText(e.getKeyCode())+"鍵按下\n");
    }

    @Override
    public void keyReleased(KeyEvent e) {
        text.append("鍵盤"+KeyEvent.getKeyText(e.getKeyCode())+"鍵松開\n");
    }
}
public class Hello {
    public static void main(String[] args) {
        new MyKeyHandle();
    }
}

image-20220212152738888

使用KeyAdapter適配器

import javax.swing.*;
import java.awt.event.*;

class MykeyHandle extends JFrame{
    private JTextArea text = new JTextArea();
    public MykeyHandle(){
        super.setTitle("一");
        JScrollPane scr = new JScrollPane(text);
        scr.setBounds(5,5,300,200);
        super.add(scr);
        text.addKeyListener(new KeyAdapter() {
            @Override
            public void keyTyped(KeyEvent e) {
                super.keyTyped(e);
                text.append("輸入的內(nèi)容是:"+e.getKeyChar()+"\n");
            }
        });
        super.setSize(310,210);
        super.setVisible(true);
        super.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(1);
            }
        });
    }
}
public class Hello {
    public static void main(String[] args) {
        new MykeyHandle();
    }
}

鼠標(biāo)事件及監(jiān)聽處理

MouseListener接口

方法作用
void mouseClicked(MouseEvent e)鼠標(biāo)單擊時(shí)調(diào)用(按下并釋放)
void mousePressed(MouseEvent e)鼠標(biāo)按下時(shí)調(diào)用
void mouseReleased(MouseEvent e)鼠標(biāo)松開時(shí)調(diào)用
void mouseEntered(MouseEvent e)鼠標(biāo)進(jìn)入到組件時(shí)調(diào)用

MouseEvent類

方法作用
public static final int BUTTON1表示鼠標(biāo)左鍵的常量
public static final int BUTTON2表示鼠標(biāo)滾軸的常量
public static final int BUTTON3表示鼠標(biāo)右鍵的常量
public int getButton()以數(shù)字形式返回按下的鼠標(biāo)鍵
public int getClickCount()返回鼠標(biāo)的單擊次數(shù)
public static String getMouseModifiersText(int modifiers)以字符串形式返回鼠標(biāo)按下的鍵信息
public int getX()返回鼠標(biāo)操作的X坐標(biāo)
public int getY()返回鼠標(biāo)操作的Y坐標(biāo)
import javax.swing.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

class MyMouseHandle extends JFrame implements MouseListener{
    private JTextArea text = new JTextArea();
    public MyMouseHandle(){
        super.setTitle("一");
        JScrollPane src = new JScrollPane(text);
        src.setBounds(5,5,300,200);
        super.add(src);
        text.addMouseListener(this);
        super.setSize(310,210);
        super.setVisible(true);
        super.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(1);
            }
        });
    }
    public void mouseClicked(MouseEvent e){
        int c = e.getButton();
        String mouseInfo = null;
        if(c==MouseEvent.BUTTON1){
            mouseInfo="左鍵";
        }else if(c==MouseEvent.BUTTON3){
            mouseInfo="右鍵";
        }else {
            mouseInfo="滾軸";
        }
        text.append("鼠標(biāo)單擊"+mouseInfo+"\n");
    }

    @Override
    public void mousePressed(MouseEvent e) {
        text.append("鼠標(biāo)按下\n");
    }

    @Override
    public void mouseReleased(MouseEvent e) {
        text.append("鼠標(biāo)松開\n");
    }

    @Override
    public void mouseEntered(MouseEvent e) {
        text.append("鼠標(biāo)進(jìn)入組件\n");
    }

    @Override
    public void mouseExited(MouseEvent e) {
        text.append("鼠標(biāo)離開組件\n");
    }
}
public class Hello {
    public static void main(String[] args) {
        new MyMouseHandle();
    }
}

image-20220212161416692

通過(guò)MouseAdapter實(shí)現(xiàn)對(duì)指定鼠標(biāo)操作的監(jiān)聽

import javax.swing.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

class MyMouseHandle extends JFrame{
    private JTextArea text = new JTextArea();
    public MyMouseHandle(){
        super.setTitle("一");
        JScrollPane scr = new JScrollPane(text);
        scr.setBounds(5,5,300,200);
        super.add(scr);
        text.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                super.mouseClicked(e);
                int c = e.getButton();
                String mouseInfo = null;
                if(c==MouseEvent.BUTTON1){
                    mouseInfo="左鍵";
                }else if (c==MouseEvent.BUTTON3){
                    mouseInfo="右鍵";
                }else {
                    mouseInfo="滾軸";
                }
                text.append("鼠標(biāo)單擊"+mouseInfo+"\n");
            }
        });
        super.setSize(310,210);
        super.setVisible(true);
        super.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(1);
            }
        });
    }
}
public class Hello {
    public static void main(String[] args) {
        new MyMouseHandle();
    }
}

image-20220212164231754

鼠標(biāo)拖拽事件及監(jiān)聽處理

MouseMotionListener接口

方法作用
void mouseDragged(MouseEvent e)在組件上按下并拖動(dòng)時(shí)調(diào)用
void mouseMoved(MouseEvent e)鼠標(biāo)移動(dòng)到組件時(shí)調(diào)用
import javax.swing.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

class MyMouseMotionHandle extends JFrame{
    public MyMouseMotionHandle(){
        super.setTitle("一");
        super.addMouseMotionListener(new MouseMotionListener() {
            @Override
            public void mouseDragged(MouseEvent e) {
                System.out.println("鼠標(biāo)拖拽到:X="+e.getX()+
                        " Y="+e.getY());
            }

            @Override
            public void mouseMoved(MouseEvent e) {
                System.out.println("鼠標(biāo)移動(dòng)到窗體");
            }
        });
        super.setSize(310,210);
        super.setVisible(true);
        super.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(1);
            }
        });
    }
}
public class Hello {
    public static void main(String[] args) {
        new MyMouseMotionHandle();
    }
}

image-20220212170638251

使用MouseMotionAdapter類

super.addMouseMotionListener(new MouseMotionAdapter() {
    @Override
    public void mouseDragged(MouseEvent e) {
        System.out.println("鼠標(biāo)拖拽到:X="+e.getX()+
                " Y="+e.getY());
    }
});

到此這篇關(guān)于Java 入門圖形用戶界面設(shè)計(jì)之事件處理的文章就介紹到這了,更多相關(guān)Java 事件處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • ElasticSearch之索引模板滾動(dòng)索引實(shí)現(xiàn)詳解

    ElasticSearch之索引模板滾動(dòng)索引實(shí)現(xiàn)詳解

    這篇文章主要為大家介紹了ElasticSearch之索引模板滾動(dòng)索引實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Java之?dāng)?shù)組在指定位置插入元素實(shí)現(xiàn)

    Java之?dāng)?shù)組在指定位置插入元素實(shí)現(xiàn)

    本文主要介紹了Java之?dāng)?shù)組在指定位置插入元素實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Java使用Socket通信傳輸文件的方法示例

    Java使用Socket通信傳輸文件的方法示例

    這篇文章主要介紹了Java使用Socket通信傳輸文件的方法,結(jié)合實(shí)例形式分析了java socket編程實(shí)現(xiàn)文件傳輸操作的相關(guān)技巧,需要的朋友可以參考下
    2017-06-06
  • springBoot+mybaties后端多層架構(gòu)的實(shí)現(xiàn)示例

    springBoot+mybaties后端多層架構(gòu)的實(shí)現(xiàn)示例

    本文主要介紹了springBoot+mybaties后端多層架構(gòu)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • springcloud微服務(wù)之Eureka配置詳解

    springcloud微服務(wù)之Eureka配置詳解

    這篇文章主要介紹了springcloud微服務(wù)之Eureka配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Java多線程讀寫鎖ReentrantReadWriteLock類詳解

    Java多線程讀寫鎖ReentrantReadWriteLock類詳解

    本文詳細(xì)講解了Java多線程讀寫鎖ReentrantReadWriteLock類,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • Java使用Spring JdbcTemplate向in語(yǔ)句中傳遞參數(shù)的教程詳解

    Java使用Spring JdbcTemplate向in語(yǔ)句中傳遞參數(shù)的教程詳解

    這篇文章主要給大家介紹Java如何使用Spring JdbcTemplate向in語(yǔ)句中傳遞參數(shù),文中有詳細(xì)的流程步驟和代碼示例,需要的朋友可以參考下
    2023-07-07
  • Mybatis-Plus中的條件參數(shù)使用

    Mybatis-Plus中的條件參數(shù)使用

    這篇文章主要介紹了Mybatis-Plus中的條件參數(shù)使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java Jwt庫(kù)的簡(jiǎn)介及使用詳解

    Java Jwt庫(kù)的簡(jiǎn)介及使用詳解

    JWT 是開放的行業(yè)標(biāo)準(zhǔn)RFC7591,用來(lái)實(shí)現(xiàn)端到端安全驗(yàn)證,就是通過(guò)一些算法對(duì)加密字符串和JSON對(duì)象之間進(jìn)行加解密,下面通過(guò)本文給大家介紹Java Jwt庫(kù)的簡(jiǎn)介及使用,感興趣的朋友一起看看吧
    2021-11-11
  • MyBatis insert標(biāo)簽及常用屬性詳解

    MyBatis insert標(biāo)簽及常用屬性詳解

    這篇文章主要介紹了MyBatis insert標(biāo)簽,insert 標(biāo)簽中沒有 resultType 屬性,只有查詢操作才需要對(duì)返回結(jié)果類型進(jìn)行相應(yīng)的指定,需要的朋友可以參考下
    2023-10-10

最新評(píng)論

龙口市| 修水县| 陆良县| 东乌珠穆沁旗| 根河市| 衡阳市| 靖安县| 措美县| 金塔县| 聂荣县| 苍梧县| 漳平市| 饶阳县| 嘉禾县| 抚松县| 阳东县| 邯郸市| 麻江县| 涞源县| 莱芜市| 庆阳市| 巍山| 阳西县| 康马县| 门源| 晋城| 泗阳县| 江北区| 青海省| 梅州市| 乡城县| 曲麻莱县| 额敏县| 家居| 教育| 开阳县| 花垣县| 大丰市| 屯留县| 会东县| 许昌县|