我有兩個類文件:爲什麼我的背景顏色不會顯示在JFrame中?
屏幕https://gist.github.com/3020101
JMain https://gist.github.com/3020107
我試圖讓它去全屏5秒,顯示背景(或者,在這一點上,連前景),但是當我運行它時,它會全屏顯示5秒鐘,但這只是一個空白的淺灰色屏幕。
我在做什麼錯?最終,我將使用背景圖片,並且要確保我不會在某個地方搞砸。
謝謝你們!
編輯:當我在我的JMain類的最後添加這個時,字體顏色與前景顏色相同,但無論我在程序中改變它的顏色,背景總是黑色。
public void paint(Graphics g) {
g.drawString("This is gonna be awesome", 200, 200);
}
從GitHub代碼
import java.awt.*;
import javax.swing.JFrame;
public class JMain extends JFrame {
private JFrame frame = new JFrame();
public static void main(String[] args) {
DisplayMode dm = new DisplayMode(800, 600, 16, DisplayMode.REFRESH_RATE_UNKNOWN);
JMain m = new JMain();
m.run(dm);
}
public void run(DisplayMode dm) {
this.getContentPane().setBackground(Color.RED);
frame.setForeground(Color.BLACK);
frame.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();
}
}
}
和
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 Window getFullScreenWindow() {
return vc.getFullScreenWindow();
}
public void restoreScreen() {
Window w = vc.getFullScreenWindow();
if (w != null) {
w.dispose();
}
vc.setFullScreenWindow(null);
}
}
+1。他應該避免使用'paint()'來繪製 – GETah
<3你是個學者和紳士!謝謝,這個作品。 –