gpt4 book ai didi

java - 传入JFrame改变亮度?

转载 作者:行者123 更新时间:2023-11-30 04:02:29 25 4
gpt4 key购买 nike

我正在尝试在 Swing 中的 JFrame 上创建一个弹出窗口。我已经这样做了,以便弹出窗口将分层在旧的 JFrame 上,并通过传入 JFrame 和 .disable() 来禁用旧的 JFrame。但是,我还尝试使后面的框架变暗以表明它已被禁用。

我发现了这个: stackoverflow - Change brightness of JFrame

但是在禁用它之前,如何使用它来降低作为参数的 JFrame 的亮度?像 darken(frame) 这样的东西,它使用函数 darken(JFrame frame) 来降低它。谢谢!

最佳答案

事实上,我会将我的评论作为答案:

  • 要在另一个窗口上显示一个窗口并禁用下部窗口,请将上部窗口设置为模态 JDialog,并将下部窗口作为其父窗口传入。
  • 调暗顶层窗口的一种方法是获取其玻璃 Pane ,将其设置为可见,然后在其上绘制半透明的灰色。
<小时/>

这是我的概念代码测试:

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Dialog.ModalityType;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import javax.swing.*;

public class DimView {
protected static final Color GP_COLOR = new Color(0, 0, 0, 30);

private static void createAndShowGui() {
final JFrame frame = new JFrame("DimView");
final JPanel glassPanel = new JPanel() {
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(GP_COLOR);
g.fillRect(0, 0, getWidth(), getHeight());
};
};
glassPanel.setOpaque(false);
frame.setGlassPane(glassPanel);
JPanel mainPanel = new JPanel();
mainPanel.setPreferredSize(new Dimension(400, 400));
mainPanel.setBackground(Color.pink);
mainPanel.add(new JButton(new AbstractAction("Push Me") {

@Override
public void actionPerformed(ActionEvent evt) {
glassPanel.setVisible(true);

JDialog dialog = new JDialog(frame, "Dialog",
ModalityType.APPLICATION_MODAL);
dialog.add(Box.createRigidArea(new Dimension(200, 200)));
dialog.pack();
dialog.setLocationRelativeTo(frame);
dialog.setVisible(true);

glassPanel.setVisible(false);
}
}));

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(mainPanel);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}

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

关于java - 传入JFrame改变亮度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21638710/

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