java 焦点
哪位大哥帮帮忙,在一个面板上有一个JTextField,还有一个JComboBox下拉框展开的,现在光标在文本框里,我想要实现光标不离开JTextField,但是按上下键...
哪位大哥帮帮忙,在一个面板上有一个JTextField,还有一个JComboBox下拉框展开的,现在光标在文本框里,我想要实现光标不离开JTextField,但是按上下键能在JComboBox选项中切换选项,有点像代码编辑器给提示那样,最好有代码,我水平菜,忘各位指教
展开
3个回答
展开全部
在JTextField的按键响应事件中判断是否为上下键,如果是,对JComboBox中进行选项切换。
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new FlowLayout());
// 添加field
JTextField field = new JTextField();
field.setPreferredSize(new Dimension(100, 20));
frame.getContentPane().add(field);
// 添加box
final JComboBox box = new JComboBox(new String[] { "1", "2", "3" });
box.setPreferredSize(new Dimension(100, 20));
frame.getContentPane().add(box);
// field添加按键响应
field.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println(e);
int box_index = box.getSelectedIndex();
if (e.getKeyCode() == KeyEvent.VK_UP) {
box.setSelectedIndex(box_index == 0 ? 0 : box_index - 1);
} else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
box
.setSelectedIndex(box_index == box.getItemCount() - 1 ? box_index
: box_index + 1);
}
}
});
frame.setBounds(0, 0, 320, 240);
frame.setVisible(true);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new FlowLayout());
// 添加field
JTextField field = new JTextField();
field.setPreferredSize(new Dimension(100, 20));
frame.getContentPane().add(field);
// 添加box
final JComboBox box = new JComboBox(new String[] { "1", "2", "3" });
box.setPreferredSize(new Dimension(100, 20));
frame.getContentPane().add(box);
// field添加按键响应
field.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println(e);
int box_index = box.getSelectedIndex();
if (e.getKeyCode() == KeyEvent.VK_UP) {
box.setSelectedIndex(box_index == 0 ? 0 : box_index - 1);
} else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
box
.setSelectedIndex(box_index == box.getItemCount() - 1 ? box_index
: box_index + 1);
}
}
});
frame.setBounds(0, 0, 320, 240);
frame.setVisible(true);
}
展开全部
在窗体的load事件中,输入
JTextField.focus();
或者别的什么事件。根据你的需要, focus()就是光标默认的地方,焦点。
JTextField.focus();
或者别的什么事件。根据你的需要, focus()就是光标默认的地方,焦点。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
估计你想自己实现一个根据输入动态变化JComboBox里面的选项啊,我以前夜试着弄过,但是没有弄出来,但是你去开源软件里面去找,里面有个现成的插件实现这个功能。
但是插件的名字我忘记了......
但是插件的名字我忘记了......
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询