Tag: 焦点

如何通知复合材料的孩子收到/失去焦点?

我有一个SWT Composite ,我需要传递给其他代码,这些代码会随意添加子代码。 有没有办法通知复合材料的孩子收到并失去了焦点? 为了确保清楚,我无法为每个孩子添加听众,因为我不负责创建这些控件。 可以随时添加一个孩子。

Swing中requestFocusInWindow()和grabFocus()之间的区别

我想知道requestFocusInWindow()和grabFocus()方法之间的区别。 他们两个都很适合在这个程序中抓住我的焦点。 因此,我无法理解其中的差异。 import javax.swing.*; import java.awt.*; import java.awt.event.*; class Focus extends JFrame { JButton jb; public Focus() { createAndShowGUI(); } private void createAndShowGUI() { setTitle(“grabFocus() vs requestFocusInWindow()”); setLayout(new FlowLayout()); setSize(400,400); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jb=new JButton(“Open Dialog”); jb.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae) { showDialog(); } }); add(jb); } private void showDialog() { JDialog jd=new JDialog(); […]

如何设置已经运行的应用程序的焦点?

我使用ServerSocket端口只运行我的Java Swing应用程序的一个实例,所以如果用户试图打开另一个程序实例,我会向他显示“另一个实例已经打开”的警告。 这工作正常,但我没有显示此消息,而是希望将焦点放在正在运行的应用程序本身上,就像某些程序(MSN Messenger)一样,即使它已被最小化。 对于各种操作系统,是否有解决方案?

Java – 显示最小化的JFrame窗口

如果JFrame窗口最小化,有没有办法让它重新聚焦? 我试图让它点击某一点,然后恢复它。 while (isRunning) { start = System.currentTimeMillis(); frame.setState(Frame.ICONIFIED); robot.mouseMove(clickX, clickY); robot.mousePress(InputEvent.BUTTON1_MASK); frame.setState(Frame.NORMAL); Thread.sleep(clickMs – (System.currentTimeMillis() – start)); }

如何在Java中按下/键入TAB键?

private void jTextField1KeyPressed(java.awt.event.KeyEvent evt) { //cant capture my TAB? System.out.print(evt.getKeyChar()); } 在没有使用焦点监听技术的情况下,java gui中捕获tab键的最简单方法是什么?

与色的项目和焦点的色的jcombobox

我正在尝试制作带有彩色物品的彩色下拉列表(请参阅下面的代码)。 combobox失去焦点后,颜色会被应用。 这是正确的行为吗? 当combobox具有焦点时,如何才能使前景和/或背景颜色发生变化? 谢谢 import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; import javax.swing.border.*; public class DropDown { enum Colors { red(Color.red), orange(Color.orange), green(Color.green), yellow(Color.yellow), blue(Color.blue); Colors(Color color) { this.color = color; } static String[] listModel() { java.util.List values = Arrays.asList(values()); String s = values.toString().replaceAll(” “, “”); return s.substring(1, s.length() – 1).split(“,”); } final […]

使用TAB将焦点更改为JTable中的下一个组件

JTable的默认行为是将焦点更改为下一个单元格,我想强制它将焦点移动到按下TAB键的下一个组件(例如JTextField)。 我重写了DefaultTableModel isCellEditable方法,总是返回false: public boolean isCellEditable(int rowIndex, int columnIndex) { return false; } 但它仍然没有改变焦点到下一个组件! 我应该如何将JTable更改焦点转移到下一个组件而不是下一个组件?

将焦点设置为文本字段

我有一个用netbeans开发的应用程序,我想在显示一个面板时将焦点设置到某个jTextField 。 我已阅读了一些post,并尝试了各种方法,但没有工作。 其中一个主要问题是放置所需代码的位置,我相信我的情况是this.txtMessage.requestFocusInWindow(); 有一些post表明使用了Window Listener,但是由于netbeans已经生成了GUI,我无法看到如何实现接口,因为我无法编辑创建jPANEL等的代码。整个事情非常令人沮丧,我真的不相信这应该是那么困难。 就像测试一样,我添加了requestFocusInWindow(); 到面板上的按钮,它确实将焦点设置为所需的输入。

Java阻止JComponent的焦点

我为我的申请做了一个gui。 JFrame有2个JPanel,panel1和panel2。 panel1就是这样,一个带有自定义绘画的JPanel,每5毫秒重绘一次。 panel2是我第一次尝试CardLayout:它包含JPanels subPanel1和subPanel2。 subPanel1包含一个JComboBox并添加到panel2: panel2.add(subPanel1); 。 subPanel2有.setLayout(new CardLayout()); 命令,我添加3个新的JPanels,适当的itemListener和所有。 当然我也添加它: panel2.add(subPanel2); 现在问题是:在Java中集中组件。 我知道方法setFocusable(boolean)和requestFocus() 。 但我不能让它们以任何合乎逻辑的方式行事。 首先,它们的根本问题是:当combobox获得焦点时,我根本无法完全聚焦它(尝试用光标点击到处)。 以下是我进行的实验: 1)没有任何代码在整个应用程序中进行聚焦,无论将哪个命令面板1和面板2添加到JFrame,combobox都从焦点开始。 2)如果我设置了panel1.setFocusable(true); (在它的构造函数中)它将从焦点开始 3)如果我设置了panel1.setFocusable(false); 并要求专注于它,它没有得到它。 (只有按预期工作的东西) 4)如果我将panel2,subPanel1或subPanel2设置为单独或以任何组合不可聚焦,它们仍然可以获得焦点(combobox,即,这是唯一能够注册焦点的组件)。 5)如果我将combobox设置为不可聚焦,我仍然可以使用框’itemListener在CardLayout中的卡之间滚动,但焦点不会粘在它上面。 事实上,panel1仍然记录键盘输入 所以我真的很担心整个’焦点’的事情。 也许这不是我认为的那样? 我想要做的是完全阻止与panel2的所有交互,直到一个标志(每5毫秒评估一次)为真。 我是否正确假设与JPanel不同,JComboBox会自动拥有一个mousebuttonListener,以便在点击时获得焦点? 如果不是,那么如何完全禁用JComboBox和当前卡显示的所有组件? 不可聚焦组件中的组件仍然可以聚焦是否是正常行为?

如何找出当前具有焦点的对象

我的Frame有几个TextField 。 我想知道哪个TextField目前有焦点。 我怎样才能找到这些信息?