布局似乎有問題,JButton在調(diào)整窗口大小時顯示出意外的行為。JRE版本1.7更新3預(yù)期行為當(dāng)我運行這個程序的時候,它像預(yù)期的那樣工作,一切都很順利。就像我點擊STOP JButton動畫停止,文本位于相同的位置。JButton改變到START..現(xiàn)在當(dāng)我點擊BALL COLOUR JButton的顏色BALL更改,以及BALL COLOUR JBUTTON,也更改為BALL..如果我按照沒有調(diào)整大小的方式運行我的應(yīng)用程序,那么整個行為都可以工作。意外行為但當(dāng)我RESIZE我的JFrame,通過拉Right Side,這時顯示了我的應(yīng)用程序的意外行為,在某種意義上說,如果我按下STOP JButton然后單擊BALL COLOUR按鈕上的文本。JButton單擊其文本更改為START將改為STOP再次,當(dāng)它不應(yīng)該,以及顏色的BALL COLOUR JButton將保持不變或轉(zhuǎn)向BLUE,當(dāng)它應(yīng)該改變成球的顏色時。我是附加圖片獲得更多的信息。但是如果你想把它調(diào)整到原來的大小或者更接近它,事情就會恢復(fù)正常。為什么會發(fā)生這種事?任何想法或線索都會很感激。底線:為什么應(yīng)用程序照常運行,在BEGINNING,但不是什么時候RESIZED拖著它RIGHT SIDE但是,如果你把它恢復(fù)到原來的大小或者更接近它,事情就會恢復(fù)正常,它會像預(yù)期的那樣工作嗎?所以考慮到這個場景,我是不是做錯了什么,在程序中?;蛘哌@正是我應(yīng)該使用SwingWorker,或者這是與Layout,或隱藏的與.有關(guān)的東西Content Pane..請放點燈:-)下面是我正在使用的代碼,我把它降到了最低限度,我認為這是為了演示我的問題:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class BallAnimation{
private int x;
private int y;
private boolean positiveX;
private boolean positiveY;
private boolean isTimerRunning;
private int speedValue;
private int diameter;
private DrawingArea drawingArea;
private Timer timer;
private int colourCounter;
Color[] colours = {
Color.BLUE.darker(),
Color.MAGENTA.darker(),
Color.BLACK.darker(),
Color.RED.darker(),
Color.PINK.darker(),
Color.CYAN.darker(),
Color.DARK_GRAY.darker(),
Color.YELLOW.darker(),
Color.GREEN.darker()
};
private Color backgroundColour;
private Color foregroundColour;
private ActionListener timerAction = new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
x = getX();
y = getY();
drawingArea.setXYColourValues(x, y, backgroundColour
, foregroundColour);
}
};
添加回答
舉報
0/150
提交
取消