我是Java图形设计的新手,如果可能的话,我希望您能通过一个简单的示例帮助我,以帮助我了解JFrames,Timer,SwingControllers以及所有这些东西的基本功能。您将如何实现以下情况:
我们有一个内部带有JPanel的JFrame。执行开始时,JPanel为白色,但我们希望它每两秒钟更改一次其颜色:
public class MiJFrame extends javax.swing.JFrame {
public MiJFrame() {
initComponents();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new MiJFrame().setVisible(true);
jPanel1.setBackground(Color.yellow);
jPanel1.setBackground(Color.RED);
}
});
}
// Variables declaration - do not modify
private static javax.swing.JPanel jPanel1;
// End of variables declaration
}
最初,我在setBackgroud()方法之间使用了线程对象的sleep方法,但是它不起作用,因为它仅显示最后的更改。在这里如何使用Timer对象?
首先,每当需要更改表示内容的颜色时,请始终将Opaque
属性设置为true。就像您的情况一样,JPanel
首先必须使用panelObject.setOpaque(true)
,对于某些Look And Feel
调用此方法是必须执行背景颜色更改的。
关于其余部分,请尝试下面的代码示例:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/*
* @see
* http://stackoverflow.com/q/11036830/1057230
*/
public class ColourTimer
{
private JPanel contentPane;
private Timer timer;
private int counter;
private Color[] colours = {
Color.RED,
Color.WHITE,
Color.BLUE,
Color.DARK_GRAY,
Color.YELLOW,
Color.LIGHT_GRAY,
Color.BLACK,
Color.MAGENTA,
Color.PINK,
Color.CYAN
};
private ActionListener timerAction = new ActionListener()
{
@Override
public void actionPerformed(ActionEvent ae)
{
if (counter == (colours.length - 1))
counter = 0;
contentPane.setBackground(colours[counter++]);
}
};
public ColourTimer()
{
counter = 0;
}
private void displayGUI()
{
JFrame frame = new JFrame("Colour Timer");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
contentPane = new JPanel();
contentPane.setOpaque(true);
final JButton button = new JButton("STOP");
button.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent ae)
{
if (timer.isRunning())
{
button.setText("START");
timer.stop();
}
else
{
button.setText("STOP");
timer.start();
}
}
});
frame.getContentPane().add(contentPane, BorderLayout.CENTER);
frame.getContentPane().add(button, BorderLayout.PAGE_END);
frame.setSize(300, 200);
frame.setLocationByPlatform(true);
frame.setVisible(true);
timer = new Timer(2000, timerAction);
timer.start();
}
public static void main(String... args)
{
EventQueue.invokeLater(new Runnable()
{
@Override
public void run()
{
new ColourTimer().displayGUI();
}
});
}
}
本文向大家介绍JS实现基本的网页计算器功能示例,包括了JS实现基本的网页计算器功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS实现基本的网页计算器功能。分享给大家供大家参考,具体如下: 运行效果: 网页计算机: 利用css进行div的布局设置基本的计算机的基本的框架, 在其内部设置text进行显示,利用button添加按钮。 一个主要的点:我们要在按按钮的时候,把数据输出到te
问题内容: 我正在尝试为JPanel的右上角到左下角的2个框设置动画。对于动画,我使用了Swing Timer和。问题是当我单击开始按钮时。它仅设置动画并移动蓝色框,而不移动红色框。 这是代码: 问题答案: 因此,所有在类级别声明的变量都是共享的。您的第一个调用将设置它们,然后第二个调用将完全覆盖以前的值。您需要将它们从类变量更改为动画的参数。 创建一个新类,该类实现并保存该类中的变量。 例如,
本文将介绍 manifest.json 的一些基本配置,通过这些基本配置,PWA 站点可以支持添加至主屏幕功能。 自定义名称 自定义图标 设置启动网址 设置作用域 自定义名称 PWA在通过应用安装横幅引导用户安装 app,以及被添加到主屏幕时,需要显示应用名称以便用户将其与其他应用区分开来。对应的属性为: name: {string} 应用名称,用于安装横幅、启动画面显示 short_name:
初始目录结构 通过 lavas init 初始化项目完成之后,我们应该能够看到如下的文件结构: lavas-project ├── assets/ ├── components/ ├── core/ ├── middlewares/ ├── node_modules/ ├── pages/ ├── static/ ├── store/ ├── lavas.config.js ├── server.
问题内容: 我在这段代码上遇到了麻烦。 我正在使用一个随机数启动一个计时器,并且我想每秒倒数一次更新JLabel。但是我还没有弄清楚该怎么做,因为计时器触发的唯一侦听器位于它的末尾(我知道)。 这是代码: 问题答案: 我不太了解您为什么使用随机数的问题,但以下是一些观察结果: 我想每秒钟更新一次带有倒计时的JLabel。 然后,您需要将计时器设置为每秒触发一次。因此,计时器的参数是1000,而不是
问题内容: 我正在使用Swing 使某个自定义内容在特定时间出现。我希望用户可以选择单击“隐藏”按钮,以关闭该通知并使一个小时后返回。我该如何实现? 问题答案: 有初步的延迟;只需将其设置为即可。调用后一个小时,您将被呼叫。 附录:这是一个按钮示例,该按钮在指定的时间段内隐藏了它的封闭窗口。