布局似乎有问题,JButton在调整窗口大小时显示出意外的行为。

布局似乎有问题,JButton在调整窗口大小时显示出意外的行为。

JRE版本1.7更新3

预期行为

当我运行这个程序的时候,它像预期的那样工作,一切都很顺利。就像我点击STOP JButton动画停止,文本位于相同的位置。JButton改变到START..现在当我点击BALL COLOUR JButton的颜色BALL更改,以及BALL COLOUR JBUTTON,也更改为BALL..如果我按照没有调整大小的方式运行我的应用程序,那么整个行为都可以工作。

意外行为

但当我RESIZE我的JFrame,通过拉Right Side,这时显示了我的应用程序的意外行为,在某种意义上说,如果我按下STOP JButton然后单击BALL COLOUR按钮上的文本。JButton单击其文本更改为START将改为STOP再次,当它不应该,以及颜色的BALL COLOUR JButton将保持不变或转向BLUE,当它应该改变成球的颜色时。我是附加图片获得更多的信息。但是如果你想把它调整到原来的大小或者更接近它,事情就会恢复正常。为什么会发生这种事?任何想法或线索都会很感激。

底线:

为什么应用程序照常运行,在BEGINNING,但不是什么时候RESIZED拖着它RIGHT SIDE但是,如果你把它恢复到原来的大小或者更接近它,事情就会恢复正常,它会像预期的那样工作吗?

所以考虑到这个场景,我是不是做错了什么,在程序中。或者这正是我应该使用SwingWorker,或者这是与Layout,或隐藏的与.有关的东西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);
        }       
    };


陪伴而非守候
浏览 477回答 3
3回答

富国沪深

也许能帮你完成两部分,我觉得图形/2D指定使用摆动定时器专门,
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java