我有一個簡單的gui,當我運行它是完美的,但偶爾它不顯示正確。我在JPanel中有一個圓圈。當它正確運行時,它會像我打算的那樣顯示在JFrame的中間,但是當它不能正常工作時,該圓圈將出現在靠近屏幕底部的位置。我該如何解決這個問題,讓它每次都顯示正確?是我的代碼不正確(我希望不是!:)),還是它在java中的一些錯誤。所以這裏是我的代碼:Java是不是顯示gui的權利
更新:看來,窗口高度正在改變。
Run.java ------------------------------------------- -------------------------------------
import javax.swing.JFrame;
public class Run {
public static void main(String args[]) {
Window w = new Window();
w.setSize(800, 500);
w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
w.setVisible(true);
}
}
Window.java --- -------------------------------------------------- -----------------------
import javax.swing.JFrame;
public class Window extends JFrame {
public Window() {
super("Wheel");
Gui g = new Gui();
add(g);
}
}
Gui.java ----------------- -------------------------------------------------- -------------
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
public class Gui extends JPanel {
private Color wheelColor = new Color(0, 0, 255);
public Gui() {
setOpaque(true);
setBackground(new Color(255, 0, 0));
}
public void paintComponent(Graphics g) {
g.setColor(wheelColor);
g.fillOval(40, 40, 420, 420);
}
}
另外我使用Ubuntu,我不知道這是否會影響它。提前致謝。
嘗試使用LAYO ut管理器(特別是您的Window類),這將有助於您的組件以更可預測的方式顯示。 – MarsAtomic 2014-10-09 01:17:12
你可以添加一些截圖嗎?儘管如此,它並不確定。通常這意味着線程問題,即有時它在開始繪製圓圈之前完成繪製畫布,而其他時間則不完成。或者,如果圈子在錯誤的地方,你可能會做出不同的事情。後者可能更有可能,因爲我確信Swing是單線程的。 – JaneGoodall 2014-10-09 01:18:03
我沒有足夠的代表發佈圖像,:(。 – user3131261 2014-10-09 01:24:39