我有N列的文本框,希望按下回车后能和这列的save按钮绑定,请问怎么实现
GUI部分代码:
public Test() {
int i;
JPanel[] p=new JPanel[AddressBook.getCount()];
JButton[] jbtsave=new JButton[AddressBook.getCount()];;
JButton[] jbtDelete=new JButton[AddressBook.getCount()];
final JTextField[] name = new JTextField[AddressBook.getCount()];
final JTextField[] sex = new JTextField[AddressBook.getCount()];
final JTextField[] age = new JTextField[AddressBook.getCount()];
for(i=0;i<AddressBook.getCount();i++){
p[i] = new JPanel();
jbtsave[i] = new JButton("Save");
jbtDelete[i] = new JButton("Delete");
name[i]= new JTextField(10);
sex[i]= new JTextField(1);
age[i]= new JTextField(3);
p[i].setLayout(new GridLayout(1, 5, 10, 10));
getRootPane().setDefaultButton(jbtsave[i]);
p[i].add(name[i]);
name[i].requestFocus();
p[i].add(sex[i]);
sex[i].requestFocus();
p[i].add(age[i]);
age[i].requestFocus();
p[i].add(jbtsave[i]);
p[i].add(jbtDelete[i]);
final String str = "The button for "+i;
jbtsave[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null,str,"Alert",JOptionPane.INFORMATION_MESSAGE);
}
});
}
JPanel p1 = new JPanel();
p1.setLayout(new GridLayout(AddressBook.getCount(), 1, 10, 10));
for(i=0;i<AddressBook.getCount();i++)
p1.add(p[i]);
add(p1);
}
GUI部分代码:
public Test() {
int i;
JPanel[] p=new JPanel[AddressBook.getCount()];
JButton[] jbtsave=new JButton[AddressBook.getCount()];;
JButton[] jbtDelete=new JButton[AddressBook.getCount()];
final JTextField[] name = new JTextField[AddressBook.getCount()];
final JTextField[] sex = new JTextField[AddressBook.getCount()];
final JTextField[] age = new JTextField[AddressBook.getCount()];
for(i=0;i<AddressBook.getCount();i++){
p[i] = new JPanel();
jbtsave[i] = new JButton("Save");
jbtDelete[i] = new JButton("Delete");
name[i]= new JTextField(10);
sex[i]= new JTextField(1);
age[i]= new JTextField(3);
p[i].setLayout(new GridLayout(1, 5, 10, 10));
getRootPane().setDefaultButton(jbtsave[i]);
p[i].add(name[i]);
name[i].requestFocus();
p[i].add(sex[i]);
sex[i].requestFocus();
p[i].add(age[i]);
age[i].requestFocus();
p[i].add(jbtsave[i]);
p[i].add(jbtDelete[i]);
final String str = "The button for "+i;
jbtsave[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null,str,"Alert",JOptionPane.INFORMATION_MESSAGE);
}
});
}
JPanel p1 = new JPanel();
p1.setLayout(new GridLayout(AddressBook.getCount(), 1, 10, 10));
for(i=0;i<AddressBook.getCount();i++)
p1.add(p[i]);
add(p1);
}
解决方案 »
- 几个对象跟帖!请关注,并指点!
- 数据库中有个字段类型为timestamp,请问该按什么格式输入记录呢?
- 谁能提供一下 swing的学习资料,书籍,电子书什么的..
- 用eclipse怎样创建文件
- 小第写了一个用户注册程序,通过数据库验证。有点小麻烦,请大虾们看看
- 如何使就JFrame最大化?
- "抽象类不能用来直接产生对象"是什么意思?
- 下面的方法访问数据库的列是null出错,怎样改进,谢谢!
- String x="abc";if(x.equals("abc")) x="uvw";那么x就变成"uvw",String对象不是不能修改吗?为什么会这样?
- 请问:在Jbuilder4.0中,APPLET怎样访问数据库(以ACCESS为例)?
- java基础问题
- native方法为什么不能是抽象的
当释放回车键时调用save的点击事件import java.awt.event.*;
import javax.swing.*;
public class Demo extends JFrame {
private JPanel jp = new JPanel();
private JTextField jt = new JTextField(20);
private JButton jb = new JButton("save");
public Demo(){
jp.add(jt);
jp.add(jb);
this.add(jp);
MyListener myListener = new MyListener();
jt.addKeyListener(myListener);
jb.addMouseListener(myListener);
this.setBounds(400,300,400,300);
this.setVisible(true);
}
public static void main(String[] args){
new Demo();
}
class MyListener extends MouseAdapter implements KeyListener {
@Override
public void mouseClicked(MouseEvent e){
EnterOnclick();
}
public void keyTyped(KeyEvent e){
}
public void keyPressed(KeyEvent e){
}
public void keyReleased(KeyEvent e){
if(e.getKeyCode() == 10)
EnterOnclick();
}
private void EnterOnclick(){
System.out.println("enter pressed ");
}
}
}