gpt4 book ai didi

java - 闪烁的 JFrame

转载 作者:搜寻专家 更新时间:2023-11-01 03:29:32 24 4
gpt4 key购买 nike

我想创建一个具有两个特殊功能的 JFrame:

  1. JFrame 在从最小化状态最大化时不应获取焦点。
  2. 当 JFrame 创建或从最小化状态变为最大化时,它应该在 Windows 栏中闪烁,直到用户将焦点授予它。 (就像在 ICQ 客户端中一样 alt text)。

有人知道第二个需求是如何实现的吗?

self 解释的小例子:

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class JFrameTest {
private static JFrame childFrame;
public static Container getParentContentPane() {
JPanel panel = new JPanel();
JButton button = new JButton("Create\\Restore child frame");
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
createOrRestoreChildFrame();
}
});
panel.add(button);
return panel;
}

private static void createOrRestoreChildFrame() {
if (childFrame == null) {
childFrame = new JFrame("Child Frame");
childFrame.setLocation(200, 200);
childFrame.add(new JLabel("Child Frame"));
childFrame.pack();
setChildFrameVisible();
} else {
setChildFrameVisible();
}
}

private static void setChildFrameVisible() {
childFrame.setFocusableWindowState(false);
childFrame.setVisible(true);
flashInWindowsBar(childFrame);
childFrame.toFront();
childFrame.setFocusableWindowState(true);
}

/**
* Should Make child frame flash in Windows bar.
* Currently, it does not work for me.
* Could anybody help me to fix this please? )
*/
private static void flashInWindowsBar(JFrame childFrame) {
childFrame.setState(JFrame.ICONIFIED);
childFrame.toFront();
}

private static void createAndShowGUI() {
JFrame parentFrame = new JFrame("JFrame Demo");
parentFrame.setLocation(100, 100);
parentFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
parentFrame.setContentPane(getParentContentPane());
parentFrame.pack();
parentFrame.setVisible(true);
}

public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}

谢谢!

最佳答案

以下代码完全按照您的描述为我工作:

    f.setState(JFrame.ICONIFIED);
f.toFront();

f 是一个 JFrame。

关于java - 闪烁的 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4305837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com