我有我製作的程序選擇工具。它用17個按鈕打開一個JFrame,其中15個是可定製的,他們從位於C:驅動器中的.txt文檔獲取文本。當我點擊分配按鈕時,它會打開一個JFileChooser來選擇一個文件,當點擊該按鈕時打開。然後選擇一個按鈕進行更改,然後鍵入您想要按鈕顯示的文本。之後,程序將重寫.txt文件並更新按鈕。這裏是更新代碼:爲什麼我的背景在重新粉刷後出現毛刺?
public static void restart() {
start.assignButtonActions();
start.assignButtonText();
start.paint(graphics);
}
public void assignButtonActions() {
/**
* assign button actions
*/
for (int i = 0; i < buttonAction.length; i++) {
buttonAction[i] = io.readSpecificFromHD("C:\\ButtonActions.txt", i
+ 1 + actionButton.length);
}
}
public void assignButtonText() {
for (int i = 0; i < actionButton.length; i++) {
/**
* set button text
*/
actionButton[i].setText(io.readSpecificFromHD(
"C:\\ButtonActions.txt", i + 1));
}
}
public void paint(Graphics g) {
g.drawImage(getImage("files/background.png"), 0, 0, FRAMEWIDTH,
FRAMEHEIGHT, null);
refresh();
}
public void refresh() {
graphics.drawImage(getImage("files/background.png"), 0, 0, FRAMEWIDTH,
FRAMEHEIGHT, null);
for (int i = 0; i < actionButton.length; i++) {
actionButton[i].repaint();
}
assignButton.repaint();
helpButton.repaint();
}
那就是我相信這個問題所需的所有代碼。問題是,調用方法restart()
後,背景在那裏,按鈕周圍有一個白色正方形,在正方形內部是白色的。不是真正的主要問題,但真正令人難以置信的煩人和非常不專業。起初我認爲這是按鈕的背景被繪製後調整大小,所以我做了這樣的刷新每次運行兩次它的調用。沒有幫助一點。編號: 我修正了這個問題。我採取了氣墊船的答案,並修改了我學到的一點點。我所要做的就是修改restart()
方法:
public static void restart() {
start.assignButtonActions();
start.assignButtonText();
start.repaint();
}
因爲repaint();
重繪整個組件這是說的氣墊船。謝謝大家!希望這有助於未來的問題。
幻數無處不在(魔弦太) – Wug 2012-08-08 21:16:42