Java Swing(初学者):有6个文本框竖直排列和两个按钮(bt1和bt2),默认焦点在第一个文本框上。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Swing(初学者):有6个文本框竖直排列和两个按钮(bt1和bt2),默认焦点在第一个文本框上。相关的知识,希望对你有一定的参考价值。

每单击一次bt1,焦点向下移动一次,选定下一个文本框。每单击一次bt2,焦点向上移动一次,选定上一个文本框。
我的意思就是用bt1和bt2代替键盘上的上下键来控制焦点移动。
求实现方法和思路。

以前写的,功能差不多,用1,2,3,4。。代替了。自己看一下吧
ctrl+1  表示选择编号为1的按钮。上下键控制位置变化

package eventDemo;

import java.awt.FlowLayout;
import java.awt.KeyEventPostProcessor;
import java.awt.KeyboardFocusManager;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class KeyEventDemo implements KeyListener
JButton []b = new JButton[10];
int x,y;
JFrame jf;
KeyboardFocusManager manager;
public static void main(String []args)
new KeyEventDemo();


KeyEventDemo()

manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();//看这里。。。。。。。。。。。。。。。改成setCurrentKeyboardFocusManager(),其他在改一下就可以了
manager.addKeyEventPostProcessor(new KeyEventPostProcessor() 

@Override
public boolean postProcessKeyEvent(KeyEvent e) 
// TODO Auto-generated method stub
if ((e.getModifiersEx() & InputEvent.CTRL_DOWN_MASK) !=0)
if (e.getKeyCode()==KeyEvent.VK_1)
//System.out.println("11");
b[1].requestFocus();

if (e.getKeyCode()==KeyEvent.VK_2)
System.out.println("11");
b[2].requestFocus();

if (e.getKeyCode()==KeyEvent.VK_3)
System.out.println("11");
b[3].requestFocus();

if (e.getKeyCode()==KeyEvent.VK_4)
System.out.println("11");
b[4].requestFocus();

if (e.getKeyCode()==KeyEvent.VK_5)
System.out.println("11");
b[5].requestFocus();

if (e.getKeyCode()==KeyEvent.VK_6)
System.out.println("11");
b[6].requestFocus();

if (e.getKeyCode()==KeyEvent.VK_7)
System.out.println("11");
b[7].requestFocus();

if (e.getKeyCode()==KeyEvent.VK_8)
System.out.println("11");
b[8].requestFocus();

if (e.getKeyCode()==KeyEvent.VK_9)
System.out.println("11");
b[9].requestFocus();

if (e.getKeyCode()==KeyEvent.VK_0)
System.out.println("11");
b[0].requestFocus();



return false;

);

jf = new JFrame("KeyEventDemo");
jf.setLayout(new FlowLayout());
for (int i = 0; i <=9; i++) 
b[i] = new JButton(i+"");
jf.add(b[i]);
b[i].addKeyListener(this);

jf.setBounds(600,200,200,200);
jf.setVisible(true);
jf.validate();
jf.addKeyListener(new KeyListener() 

@Override
public void keyTyped(KeyEvent e) 
// TODO Auto-generated method stub
if (e.getKeyCode() == KeyEvent.VK_0)
System.out.println('0');


@Override
public void keyReleased(KeyEvent e) 
// TODO Auto-generated method stub



@Override
public void keyPressed(KeyEvent e) 
// TODO Auto-generated method stub


);

@Override
public void keyTyped(KeyEvent e) 
// TODO Auto-generated method stub


@Override
public void keyPressed(KeyEvent e) 
// TODO Auto-generated method stub


@Override
public void keyReleased(KeyEvent e) 
// TODO Auto-generated method stub
JButton temp = (JButton) e.getSource();
x = temp.getBounds().x;
y = temp.getBounds().y;
//System.out.println(x*y);
if (e.getKeyCode() == KeyEvent.VK_UP)
y = y - 20;
if (e.getKeyCode() == KeyEvent.VK_DOWN)
y = y + 20;
if (e.getKeyCode() == KeyEvent.VK_RIGHT)
x = x + 20;
if (e.getKeyCode() == KeyEvent.VK_LEFT)
x = x - 20;
temp.setLocation(x, y);



参考技术A 直接在点击的时候,给那个文本框焦点追问

我要的不是点击,而是按钮代替鼠标和键盘,让按钮来完成这些事

如何实现Java多行文本框换行效果

java实现多行文本框换行效果,使用java swing技术,示例如下:
package test;

import java.awt.GridLayout;
import java.awt.LayoutManager;
//import java.util.EmptyStackException;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class test
public static void main(String[] args)
JFrame f = new JFrame("Welcome To Earth!");
JTextArea jt = new JTextArea(3, 20);
jt.setLineWrap(true);// 如果内容过长。自动换行

JScrollPane scr = new JScrollPane(jt,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
// lab.setBounds(10, 10, 120, 20);
// jt.setBounds(130, 10, 150, 100);
JLabel lab = new JLabel("多行输入文本:");

f.setLayout(new GridLayout(2, 1));

f.add(lab);
f.add(scr);
// f.add(jt);
f.setSize(300, 150);
f.setLocation(300, 200);
f.setVisible(true);



参考技术A 能存储换行数据的字段类型是“备注”类型的,只需要把数据库中存储该内容的那个字段的数据类型选为“备注”就可以了。本回答被提问者和网友采纳

以上是关于Java Swing(初学者):有6个文本框竖直排列和两个按钮(bt1和bt2),默认焦点在第一个文本框上。的主要内容,如果未能解决你的问题,请参考以下文章

java swing如何把获取的文本框值添加到Table表格中,能否给个简单的例子,急用!急用!谢谢

java swing下拉框两级联动

java swing 怎么设置文本框只能输入数字

java swing 怎么设置文本框只能输入数字

JAVA swing怎么加入文本框

java swing里文本框控制不能输入汉字,或者输入字符串包含汉字在失去焦点事件时提示用户!