2013-04-30 154 views
0

我只是试图制作员工时钟。我有一个数字键盘0-9和一个文本字段。我希望能够点击数字,数字将出现在文本字段中。这似乎很容易,但我找不到任何答案。jbutton更改文本字段的文本

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

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

我打电话像Btn0(0就可以了按钮,BTN1,等等等等,每一个按钮

+0

什么你尝试这么远吗?向我们展示一些代码 – jamp 2013-04-30 16:03:31

回答

0

我什么都不知道的NetBeans,但是,在谷歌搜索给了我这个

Netbeans GUI Functionality

它似乎需要的数据,不妨一读,毫无疑问,你可以计算出需要修改的内容,以满足您的目的

1

在您的按钮上的按钮添加动作监听器第一个(双击在GUI Designer :)):

button.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent e){ 
     //Set text by calling setText() method for your textfield 
     textfield.setText("Desired text"); 
    } 

}); 

问候。

1

创建一个可以被所有按钮共享的动作。喜欢的东西:

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); 
    } 
} 
2

你需要找回上动作事件被触发将JButton,然后从追加将JButton到JTextField中检索的文本。这里是短演示:
enter image description here

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(); 
      } 
     }); 
    } 
}