gpt4 book ai didi

Java全屏背景颜色不会改变?

转载 作者:行者123 更新时间:2023-11-29 06:59:04 24 4
gpt4 key购买 nike

我有一些代码可以在 java 中创建一个全屏图标,并将背景颜色设置为粉红色,将前景色设置为红色。但是,每次我运行它时,它都不会将背景颜色更改为红色,只是保持透明。我把代码放在下面。

主要java:

import java.awt.*;

import javax.swing.*;

@SuppressWarnings({ "serial" })
public class bob extends JFrame{
public static void main(String[] args) {

DisplayMode dm = new DisplayMode(800,600,16, DisplayMode.REFRESH_RATE_UNKNOWN);
bob b = new bob();
b.run(dm);
}

public void run(DisplayMode dm){
setBackground(Color.PINK);
setForeground(Color.RED);
setFont(new Font("Arial", Font.PLAIN, 24));

screen s = new screen();

try{
s.setFullScreen(dm, this);
try{
Thread.sleep(5000);
}catch(Exception ex){}
}finally{
s.restoreScreen();
}
}

public void paint(Graphics g){
g.drawString("This is gonna be awesome", 200, 200);
}

这是屏幕类:

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

public class screen2 {

private GraphicsDevice vc;

public screen2(){

GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
vc = env.getDefaultScreenDevice();
}

public void setFullScreen(DisplayMode dm, JFrame window){
window.setUndecorated(true);
window.setResizable(false);
vc.setFullScreenWindow(window);

if(dm != null && vc.isDisplayChangeSupported()){
try{
vc.setDisplayMode(dm);
}catch(Exception ex){}
}
}

public Window getFullScreenWindow(){
return vc.getFullScreenWindow();
}

public void restoreScreen(){
Window w = vc.getFullScreenWindow();
if(w != null){
w.dispose();
}
vc.setFullScreenWindow(null);
}

有人有什么想法吗?

最佳答案

public void paint(Graphics g){
g.drawString("This is gonna be awesome", 200, 200);
}

背景的绘制是在paint() 方法中完成的。您覆盖了该方法并且没有调用 super.paint(g) 因此背景永远不会被绘制。

但是,这不是进行自定义绘画的方法。您不应覆盖 JFrame 的 paint() 方法。如果您想进行自定义绘画,请覆盖 JPanelpaintComponent() 方法,然后将面板添加到框架中。

阅读 Custom Painting 上的 Swing 教程部分获取更多信息。

编辑:

添加 super.paint(g) 后,将绘制框架的子组件。这意味着内容 Pane 被绘制并且内容 Pane 被绘制在框架上,因此您不会看到框架的背景,因此您还需要添加:

//setBackground(Color.PINK);
getContentPane().setBackground(Color.PINK);

关于Java全屏背景颜色不会改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29197521/

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