2015-09-05 59 views
-6

我讓屏幕鍵盤 我有問題 我有2個文本框 我想:實施例Q按鈕後選擇的文本字段添加到文字Q 「的JTextField cliked。 setText()「我不想構建 我該怎麼辦? 文本框後cliked我如何使按鈕添加到文本

+3

你的問題很不清楚,所以如果可能的話請重新寫下你的問題,說清楚你有什麼和你想做什麼。你也想要顯示相關的代碼。請查看[幫助]以及[如何提出良好問題](http://stackoverflow.com/help/how-to-ask)章節,以獲取有關如何改進問題和增加您的問題的更多信息有可能獲得體面的幫助。 –

+0

所以你想追加已經被點擊到特定JTextField的JButton的文本?我理解這個權利嗎?我仍然無法理解「*我不想構建*」。 –

+0

不,你不明白我我想要的按鈕克里克後,該按鈕文本添加到文本框我的英語壞Sory即時發展@LuxxMiner – Alper

回答

3

下面是計算器的一個簡單示例。當您單擊(或鍵入)一個號碼時,該號碼將被添加到顯示文本字段中。

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

public class CalculatorPanel extends JPanel 
{ 
    private JTextField display; 

    public CalculatorPanel() 
    { 
     Action numberAction = new AbstractAction() 
     { 
      @Override 
      public void actionPerformed(ActionEvent e) 
      { 
//    display.setCaretPosition(display.getDocument().getLength()); 
       display.replaceSelection(e.getActionCommand()); 
      } 
     }; 

     setLayout(new BorderLayout()); 

     display = new JTextField(); 
     display.setEditable(false); 
     display.setHorizontalAlignment(JTextField.RIGHT); 
     add(display, BorderLayout.NORTH); 

     JPanel buttonPanel = new JPanel(); 
     buttonPanel.setLayout(new GridLayout(0, 5)); 
     add(buttonPanel, BorderLayout.CENTER); 

     for (int i = 0; i < 10; i++) 
     { 
      String text = String.valueOf(i); 
      JButton button = new JButton(text); 
      button.addActionListener(numberAction); 
      button.setBorder(new LineBorder(Color.BLACK)); 
      button.setPreferredSize(new Dimension(30, 30)); 
      buttonPanel.add(button); 

      InputMap inputMap = button.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); 
      inputMap.put(KeyStroke.getKeyStroke(text), text); 
      inputMap.put(KeyStroke.getKeyStroke("NUMPAD" + text), text); 
      button.getActionMap().put(text, numberAction); 
     } 
    } 

    private static void createAndShowUI() 
    { 
     JFrame frame = new JFrame("Calculator Panel"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.add(new CalculatorPanel()); 
     frame.pack(); 
     frame.setLocationRelativeTo(null); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) 
    { 
     EventQueue.invokeLater(new Runnable() 
     { 
      public void run() 
      { 
       createAndShowUI(); 
      } 
     }); 
    } 
} 

這個概念對於字母來說是相同的。

+0

我不知道這是他的意思。他回答說:「......我想在按鈕文本添加到文本字段之後鍵按鈕激活......」 - 在我問他「*之後」因此,您想要將已經單擊的JButton文本追加到特定的JTextField ?... *「(這正是你的例子所做的) - 仍然很好,很有幫助的例子! –

相關問題