首页 / JAVA / Java全屏背景色不会改变吗?
Java全屏背景色不会改变吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java全屏背景色不会改变吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2053字,纯文字阅读大概需要3分钟。
内容图文
![Java全屏背景色不会改变吗?](/upload/InfoBanner/zyjiaocheng/690/ffa549ceb82b4d4cadf002a10bdb08e5.jpg)
我有一些代码可以在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()方法.如果要进行自定义绘制,则重写JPanel的paintComponent()方法,然后将面板添加到框架中.
阅读有关Custom Painting的Swing教程中的部分,以获得更多信息.
编辑:
添加super.paint(g)后,将绘制框架的子组件.这意味着内容窗格将被绘制,并且内容窗格被绘制在框架上,因此您不会看到框架的背景,因此还需要添加:
//setBackground(Color.PINK);
getContentPane().setBackground(Color.PINK);
内容总结
以上是互联网集市为您收集整理的Java全屏背景色不会改变吗?全部内容,希望文章能够帮你解决Java全屏背景色不会改变吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。