如何在java中获取按钮文本值

问题描述 投票:0回答:1

我想获取按钮文本值来执行单击命令,但我找不到正确的代码来执行此操作。我想我需要一个代码来替换下面显示的代码中的//按钮文本值//。

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

public class Main implements ActionListener{
public static void main(String[] args) {
    
    JFrame frame = new JFrame();
    frame.setSize(420,420);
    frame.setLayout(new GridLayout(1,1));
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JButton button = new JButton();
    button.setText("1");

        }

    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==button {
            if(//button text value// == 1) {
                button.setText("3");
            }
            if(//button text value// == 1) {
                button.setText("2");
            }
    
    }
java button
1个回答
0
投票

您的代码没有包含正确的想法,即按下按钮时会发生什么,所以我决定每次将其增加到 3。

import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class Main {

    JFrame frame = new JFrame();
    JButton button = new JButton();

    public static void main(String[] args) {
        SwingUtilities.invokeLater(()->new Main());
    }
    Main() {
        button.setText("1");
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if(button.getText().equals("1")) {
                    button.setText("2");
                }
                else if(button.getText().equals("2")) {
                    button.setText("3");
                }
                else if(button.getText().equals("3")) {
                    button.setText("1");
                }
            }
        });

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new GridBagLayout());

        frame.add(button);
        frame.pack();

        frame.setSize(420,420);
        frame.setVisible(true);
    }
}

首先,您的

actionPerformed
无法使用 JButton,因为它在您的 main 方法中被声明为局部变量。

简要总结一下这段代码的作用,它将按钮的值设置为 1,并添加一个

ActionListener
(请记住,您不必检查是否为
e.getSource()==button
,因为只有按下按钮时才会运行)它获取文本并递增它(如果值为 3,则将其重置为 1),然后基本上将此按钮添加到 JFrame 中。

© www.soinside.com 2019 - 2024. All rights reserved.