java isfocusowner_Java JTextArea.isFocusOwner方法代码示例

这篇博客展示了如何使用Java Swing进行自动化测试,包括设置窗口焦点,检查和转移焦点到JCheckBox和JTextArea,以及模拟键盘事件如VK_DOWN和'1'的按下与释放。测试过程中验证了焦点转移和文本输入的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import javax.swing.JTextArea; //导入方法依赖的package包/类

public void start ()

{

setSize (200,200);

setVisible(true);

validate();

JFrame frame = new JFrame("The Frame");

Set ftk = new HashSet();

ftk.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_DOWN, 0));

frame.getContentPane().

setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,

ftk);

JCheckBox checkbox = new JCheckBox("test");

frame.getContentPane().add(checkbox, BorderLayout.NORTH);

JTextArea textarea = new JTextArea(40, 10);

frame.getContentPane().add(textarea);

frame.pack();

frame.setVisible(true);

Util.waitForIdle(robot);

if (!frame.isActive()) {

throw new RuntimeException("Test Fialed: frame isn't active");

}

// verify if checkbox has focus

if (!checkbox.isFocusOwner()) {

checkbox.requestFocusInWindow();

Util.waitForIdle(robot);

if (!checkbox.isFocusOwner()) {

throw new RuntimeException("Test Failed: checkbox doesn't have focus");

}

}

// press VK_DOWN

robot.keyPress(KeyEvent.VK_DOWN);

robot.delay(50);

robot.keyRelease(KeyEvent.VK_DOWN);

robot.delay(50);

Util.waitForIdle(robot);

// verify if text area has focus

if (!textarea.isFocusOwner()) {

throw new RuntimeException("Test Failed: focus wasn't transfered to text area");

}

// press '1'

robot.keyPress(KeyEvent.VK_1);

robot.delay(50);

robot.keyRelease(KeyEvent.VK_1);

robot.delay(50);

Util.waitForIdle(robot);

// verify if KEY_TYPED arrived

if (!"1".equals(textarea.getText())) {

throw new RuntimeException("Test Failed: text area text is \"" + textarea.getText() + "\", not \"1\"");

}

System.out.println("Test Passed");

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值