【发布时间】:2014-09-07 13:41:12
【问题描述】:
我一直在尝试一个接一个地显示多个 jpanel,每个 jpanel 之间的时间不同。我使用了 swing timer、thread.sleep 和 int++ 计数器来尝试在每个 jpanel 的显示之间创建间距,但都没有成功。
在之前的帖子中,有人告诉我计时器是最好的选择。我尝试了许多不同的教程,但都没有运气,我真的不明白它的实现。
我的启动整个过程的按钮使用 mouseListener,而我读过的所有教程都提到了使用 ActionListeners,这让我更加困惑。
请问有人能告诉我如何实现这个过程。
我的评论部分会编码什么?
if (a.getSource() == button){
panel1.setVisible(true);
ActionListener listener = new ActionListener(){
public void actiinPerformed(ActionEvent event){
panel1.setVisible(false);
panel2.setVisible(true);
}
};
Timer timer = new Timer(4000, listener);
timer.start();
// This is one method I tried, and even ifit had worked I wouldnt know where to begin timing the following panels.Would I create a new timer for each part of the panel exchange?
// panel1.setVisible(false);
// panel2.setVisible(true);
// panel2.setVisible(false);
// panel3.setVisible(true);
// panel3.setVisible(false);
// menu.setVisible(true);
}
提前谢谢各位。
【问题讨论】:
-
请向我们展示您的摇摆计时器尝试。否则,我们怎么知道你做错了什么?请注意,nothing 位于代码的注释区域。您将使用 CardLayout,并在 Swing Timer 中交换卡片,但同样,如果您向我们展示更多尝试的代码,我们可以为您提供更好的帮助。
-
我问过这个问题是因为当我使用教程时,我真的不知道我应该把它放在我已经拥有的代码中的什么地方,我想我的尝试如下......
-
“我真的不知道我会把它放在我的代码中的什么地方” 如果你没有足够的想法去尝试一些东西,那么也许你真的不应该追求编程.
-
@AndrewThompson:也许有点苛刻(我知道,这是锅叫水壶黑色),但让我们看看他尝试了什么。让我们看看他如何改进这个问题。
-
没想到,教程就是这样进行的... ActionListener listener = new ActionListener(){ public void actionPerformed(actionEvent event){ System.out.println("hello") ; } };定时器 timer = new Timer(4000, listener);计时器.start();问题是,我真的不知道这在我已经拥有的代码中的位置,我也没有足够了解计时器来修改它以用于我的面板交换目的。我知道这段代码是正确的,因为 evert 教程非常相似。很高兴知道,谢谢,不知道代码去哪里是我的一半问题。
标签: java swing user-interface timer jpanel