首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jbutton更改文本字段的文本

jbutton更改文本字段的文本
EN

Stack Overflow用户
提问于 2013-05-01 00:01:15
回答 4查看 10K关注 0票数 0

我只是想做一个员工闹钟。我有一个由数字0-9组成的键盘和一个文本字段。我希望能够单击这些数字,这些数字将出现在文本字段中。这看起来很简单,但我找不到任何答案。

我正在使用netbeans,并且我在Design中创建了Jframe的设计。

我为所有的按钮添加了动作事件。

我把每个按钮叫做Btn0 (上面有0的按钮,Btn1等等)。

EN

回答 4

Stack Overflow用户

发布于 2013-05-01 00:29:24

您需要检索在其上触发ActionEvent的JButton,然后将从JButton检索的文本附加到JTextField。以下是简短的演示:

代码语言:javascript
复制
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class EClock extends JFrame
{
    JTextField tf;
    public void createAndShowGUI()
    {
        setTitle("Eclock");
        Container c = getContentPane();
        tf = new JTextField(10);
        JPanel cPanel = new JPanel();
        JPanel nPanel = new JPanel();
        nPanel.setLayout(new BorderLayout());
        nPanel.add(tf);
        cPanel.setLayout(new GridLayout(4,4));
        for (int i =0 ; i < 10 ; i++)
        {
            JButton button = new JButton(String.valueOf(i));
            cPanel.add(button);
            button.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent evt)
                {
                    String val = ((JButton)evt.getSource()).getText();
                    tf.setText(tf.getText()+val);
                }
            });
        }
        c.add(cPanel);
        c.add(nPanel,BorderLayout.NORTH);
        setSize(200,250);
        setLocationRelativeTo(null);
        setResizable(false);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
    public static void main(String[] args) 
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
                EClock ec = new EClock();
                ec.createAndShowGUI();
            }
        });
    }
}
票数 2
EN

Stack Overflow用户

发布于 2013-05-01 00:05:02

首先在按钮上添加操作侦听器(双击GUI Designer中的按钮: ):

代码语言:javascript
复制
button.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
        //Set text by calling setText() method for your textfield
        textfield.setText("Desired text");
    }

});

致以问候。

票数 1
EN

Stack Overflow用户

发布于 2013-05-01 00:27:32

创建可由所有按钮共享的操作。类似于:

代码语言:javascript
复制
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

public class ButtonCalculator extends JFrame implements ActionListener
{
    private JButton[] buttons;
    private JTextField display;

    public ButtonCalculator()
    {
        display = new JTextField();
        display.setEditable( false );
        display.setHorizontalAlignment(JTextField.RIGHT);

        JPanel buttonPanel = new JPanel();
        buttonPanel.setLayout( new GridLayout(0, 5) );
        buttons = new JButton[10];

        for (int i = 0; i < buttons.length; i++)
        {
            String text = String.valueOf(i);
            JButton button = new JButton( text );
            button.addActionListener( this );
            button.setMnemonic( text.charAt(0) );
            button.setBorder( new LineBorder(Color.BLACK) );
            buttons[i] = button;
            buttonPanel.add( button );
        }

        getContentPane().add(display, BorderLayout.NORTH);
        getContentPane().add(buttonPanel, BorderLayout.SOUTH);
        setResizable( false );
    }

    public void actionPerformed(ActionEvent e)
    {
        JButton source = (JButton)e.getSource();
        display.replaceSelection( source.getActionCommand() );
    }

    public static void main(String[] args)
    {
        ButtonCalculator frame = new ButtonCalculator();
        frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
        frame.pack();
        frame.setLocationRelativeTo( null );
        frame.setVisible(true);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16304213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档