就是 我做了一个JFrame的窗体里面放了一个文本框 和两个按钮
我想不用电击按钮来向文本框里面输入数字
就是直接在键盘上按1或2 然后在文本里面显示
可以给我看看吗??
谢 各位高手了
我写的代码如下:
import java.awt.*;
import java.awt.event.*;import javax.swing.*;public class tan extends JFrame{
JTextField text;
JButton button1, button2,button3,button4;
int i=-1;
int a,d,c;
boolean flag=true;
String s;
StringBuffer b =new StringBuffer(100);
public tan(){
b.append("");
text =new JTextField(15);
text.setEditable(false);
text.setHorizontalAlignment(JTextField.RIGHT);
button1 =new JButton("1");
button2 =new JButton("2");
button3 =new JButton("输出");
button4 =new JButton("*");
Container c=getContentPane();
setLayout(new FlowLayout());
c.add(text);
c.add(button1);
c.add(button2);
c.add(button4);
c.add(button3);
setBounds(400,300,200,200);
setVisible(true);
button1.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e){
if(e.getKeyCode()==KeyEvent.VK_1)
{ i=i+1;
b.insert(i, 1);}
text.setText(b.toString());
}});
button2.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e){
if(e.getKeyCode()==KeyEvent.VK_2)
{ i=i+1;
b.insert(i, 2);}
text.setText(b.toString());
}});
}
public static void main(String[] args){
tan t=new tan();
}
}
我想不用电击按钮来向文本框里面输入数字
就是直接在键盘上按1或2 然后在文本里面显示
可以给我看看吗??
谢 各位高手了
我写的代码如下:
import java.awt.*;
import java.awt.event.*;import javax.swing.*;public class tan extends JFrame{
JTextField text;
JButton button1, button2,button3,button4;
int i=-1;
int a,d,c;
boolean flag=true;
String s;
StringBuffer b =new StringBuffer(100);
public tan(){
b.append("");
text =new JTextField(15);
text.setEditable(false);
text.setHorizontalAlignment(JTextField.RIGHT);
button1 =new JButton("1");
button2 =new JButton("2");
button3 =new JButton("输出");
button4 =new JButton("*");
Container c=getContentPane();
setLayout(new FlowLayout());
c.add(text);
c.add(button1);
c.add(button2);
c.add(button4);
c.add(button3);
setBounds(400,300,200,200);
setVisible(true);
button1.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e){
if(e.getKeyCode()==KeyEvent.VK_1)
{ i=i+1;
b.insert(i, 1);}
text.setText(b.toString());
}});
button2.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e){
if(e.getKeyCode()==KeyEvent.VK_2)
{ i=i+1;
b.insert(i, 2);}
text.setText(b.toString());
}});
}
public static void main(String[] args){
tan t=new tan();
}
}
button1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==button1){
text.setText("1");
}
}
});
给你一个例子
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.KeyStroke;public class Tan extends JFrame implements ActionListener{
JTextField text;
JButton button1, button2,button3,button4;
int i=-1;
int a,d,c;
boolean flag=true;
String s;
StringBuffer b =new StringBuffer(100);
public Tan(){
b.append("");
text =new JTextField(15);
text.setEditable(false);
text.setHorizontalAlignment(JTextField.RIGHT);
button1 =new JButton("1");
button2 =new JButton("2");
button3 =new JButton("输出");
button4 =new JButton("*");
Container c=getContentPane();
setLayout(new FlowLayout());
JPanel p = new JPanel();
KeyStroke shiftup = KeyStroke.getKeyStroke(KeyEvent.VK_1,0);
p.registerKeyboardAction(this,"VK_1",shiftup,JComponent.WHEN_FOCUSED);
KeyStroke shiftup1 = KeyStroke.getKeyStroke(KeyEvent.VK_2,0);
p.registerKeyboardAction(this,"VK_2",shiftup1,JComponent.WHEN_FOCUSED);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
p.add(text);
p.add(button1);
p.add(button2);
p.add(button4);
p.add(button3);
c.add(p);
setBounds(400,300,200,200);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getActionCommand().equalsIgnoreCase("VK_1")){
text.setText("1");
}
if(e.getActionCommand().equalsIgnoreCase("VK_2")){
text.setText("2");
}
System.out.println(e.getActionCommand());
}
public static void main(String[] args){
Tan t=new Tan();
}
}
如果只是输入数字可以不用设置成false.直接可编辑就行了,关于键盘输入加减*/的话,用我的方法就可以了.
如果一定要设置成false,也可以用我的方法.输入一个字符后去做一下判断就行了.