import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class KeyEventDemo extends JFrame
{
JTextField tf;;
JComboBox jcb;
public KeyEventDemo()
{
String[] str = new String[]{"中国","美国","日本"};
JComboBox jcb = new JComboBox(str);
tf = new JTextField("",10);
Container c = this.getContentPane();
c.setLayout(new FlowLayout());
//把文本域组件加入到框架窗口中
c.add(tf);
c.add(jcb);
jcb.addKeyListener(new KeyListener()
{
//键盘按下事件
public void keyPressed(KeyEvent e)
{
JComboBox jcb = (JComboBox)e.getSource();
char ch = e.getKeyChar();
if(ch == KeyEvent.VK_ENTER)
{
jcb.setPopupVisible(true);
jcb.showPopup();
}
}
//键盘释放事件
public void keyReleased(KeyEvent e)
{
}
//键盘中的非系统键
public void keyTyped(KeyEvent e)
{
}
});
}
//程序的入口方法
public static void main( String[] args )
{
KeyEventDemo frame=new KeyEventDemo();
frame.setSize(300,300);
frame.setVisible(true);
}
}
以上JAVA GUI程序在执行时,我想用键盘的回车键控制组合框 自动下拉下来,一直都无从实现,请高人指点 指正!!!
import java.awt.*;
import java.awt.event.*;public class KeyEventDemo extends JFrame
{
JTextField tf;;
JComboBox jcb;
public KeyEventDemo()
{
String[] str = new String[]{"中国","美国","日本"};
JComboBox jcb = new JComboBox(str);
tf = new JTextField("",10);
Container c = this.getContentPane();
c.setLayout(new FlowLayout());
//把文本域组件加入到框架窗口中
c.add(tf);
c.add(jcb);
jcb.addKeyListener(new KeyListener()
{
//键盘按下事件
public void keyPressed(KeyEvent e)
{
JComboBox jcb = (JComboBox)e.getSource();
char ch = e.getKeyChar();
if(ch == KeyEvent.VK_ENTER)
{
jcb.setPopupVisible(true);
jcb.showPopup();
}
}
//键盘释放事件
public void keyReleased(KeyEvent e)
{
}
//键盘中的非系统键
public void keyTyped(KeyEvent e)
{
}
});
}
//程序的入口方法
public static void main( String[] args )
{
KeyEventDemo frame=new KeyEventDemo();
frame.setSize(300,300);
frame.setVisible(true);
}
}
以上JAVA GUI程序在执行时,我想用键盘的回车键控制组合框 自动下拉下来,一直都无从实现,请高人指点 指正!!!
你可以这样想,如果Enter键可以触发弹出下拉框,那么当你弹出下拉框通过上下键选择一个选项再次按下Enter键,此时编译器是该继续弹出下拉框还是选定这个选项并收起下拉框呢?