*i'm trying print background in pink color , text in white color. text color change screen in black color. *
import java.awt.*; import javax.swing.jframe; public class screen { private graphicsdevice vc; public screen(){ 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 void restorescreen(){ window w=vc.getfullscreenwindow(); if(w!=null ){ w.dispose(); } vc.setfullscreenwindow(null); } } now main method :
import javax.swing.jframe; import java.awt.*; public class myguimain extends jframe { public static void main(string arg[]){ // screen.java displaymode dm = new displaymode(800,600,16,displaymode.refresh_rate_unknown); myguimain m = new myguimain(); m.run(dm); } public void run(displaymode dm){ setforeground(color.white); setbackground(color.pink); setfont(new font("arial",font.plain,25)); 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 gonna awesome",200,200); } } result:

i have been searching on internet end nothing. if can resolve issue, in advance.
problem #1: extending jframe. discouraged locks single use case (you can't add frame else), besides, you're not adding new functionality class. better create instance when need it
problem #2: overriding paint of top level container (jframe). discouraged number of reasons: it's easy break paint chain (which you've done); it's not double buffered (say hello flickering updates); child components can painted without requiring parent container repainted (hello weird paint updates , artificates).
better create custom class, extending jpanel , override it's paintcomponent method , perform custom painting there (and call super.paintcomponent before custom painting)
see painting in awt , swing , performing custom painting more details
something like...

import java.awt.color; import java.awt.dimension; import java.awt.displaymode; import java.awt.eventqueue; import java.awt.font; import java.awt.graphics; import java.awt.graphics2d; import java.awt.graphicsdevice; import java.awt.graphicsenvironment; import java.awt.window; import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.uimanager; import javax.swing.unsupportedlookandfeelexception; public class myguimain { public static void main(string arg[]) { new myguimain(); } public myguimain() { eventqueue.invokelater(new runnable() { @override public void run() { try { uimanager.setlookandfeel(uimanager.getsystemlookandfeelclassname()); } catch (classnotfoundexception | instantiationexception | illegalaccessexception | unsupportedlookandfeelexception ex) { ex.printstacktrace(); } jframe frame = new jframe("testing"); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.add(new testpane()); frame.pack(); frame.setlocationrelativeto(null); frame.setvisible(true); displaymode dm = new displaymode(800, 600, 16, displaymode.refresh_rate_unknown); try { screen.setfullscreen(dm, frame); try { thread.sleep(5000); } catch (exception ex) { } } { screen.restorescreen(); } } }); } public class testpane extends jpanel { public testpane() { setforeground(color.white); setbackground(color.pink); setfont(new font("arial", font.plain, 25)); } @override public dimension getpreferredsize() { return new dimension(600, 400); } protected void paintcomponent(graphics g) { super.paintcomponent(g); graphics2d g2d = (graphics2d) g.create(); g2d.setcolor(getforeground()); g2d.drawstring("this gonna awesome", 200, 200); g2d.dispose(); } } public static class screen { public static void setfullscreen(displaymode dm, jframe window) { graphicsenvironment env = graphicsenvironment.getlocalgraphicsenvironment(); graphicsdevice vc = env.getdefaultscreendevice(); window.setundecorated(true); window.setresizable(false); vc.setfullscreenwindow(window); if (dm != null && vc.isdisplaychangesupported()) { try { vc.setdisplaymode(dm); } catch (exception ex) { } } } public static void restorescreen() { graphicsenvironment env = graphicsenvironment.getlocalgraphicsenvironment(); graphicsdevice vc = env.getdefaultscreendevice(); window w = vc.getfullscreenwindow(); if (w != null) { w.dispose(); } vc.setfullscreenwindow(null); } } } you might have @ 2d graphics
Comments
Post a Comment