Java设计滚动字幕对话框展示线程状态与修改方法
在Java程序设计中,"设计滚动字演示线程状态及改变方法"这一教程涉及到了一个名为`WelcomeJFrame`的类,该类继承自`JFrame`,用于创建一个带有滚动文字的窗口。主要内容包括以下几个部分: 1. **类定义**: `WelcomeJFrame`类有两个构造函数:一个接受一个字符串数组`texts`作为参数,另一个没有参数。无参构造函数会在运行时动态设置窗口内的文字,而有参构造函数则可以根据传入的文本数组进行布局。 2. **窗口初始化**: - `setSize()`和`setLocation()`方法用来设置窗口的大小和初始位置。 - ` setDefaultCloseOperation(EXIT_ON_CLOSE)`表示当用户关闭窗口时,程序将正常退出。 - 对于字符串数组的情况,使用`GridLayout`布局管理器将多个`RollbyJPanel`对象按行排列。 3. **`RollbyJPanel`组件**: 这个内部类继承自`JPanel`,可能是为了实现滚动字幕的效果。具体实现未在提供的代码片段中展示,但可以推测它可能包含一个或多个`JLabel`对象,这些`JLabel`用于显示滚动的文字。 4. **对话框设计**: 创建了一个名为`dialog`的`JDialog`对象,用于弹出一个中心对齐的对话框,其中包含一个`JLabel`(`label_dialog`)用于显示滚动文字。对话框设置为在用户点击关闭按钮时隐藏(`HIDE_ON_CLOSE`). 5. **滚动文字的更新**: 通过`RollbyJPanel`类,我们可以想象有一个机制用于更新滚动文字的内容,可能是通过定时器或者事件监听器来控制`JLabel`的文本内容逐次滚动显示。然而,这部分代码并未直接给出,需要结合实际的`RollbyJPanel`类实现来完成。 总结: 这个教程主要关注如何在Java Swing编程中创建一个带有滚动字幕效果的窗口,以及如何与用户交互(如显示对话框)。核心是通过`WelcomeJFrame`类管理滚动文字的显示,并且可能涉及到多线程技术来实现文字的自动滚动。实际的滚动功能实现通常会涉及到事件驱动编程,例如`ActionListener`或者定时任务,以及`javax.swing.Timer`或`javax.swing.SwingUtilities.invokeLater`等方法。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class WelcomeJFrame extends JFrame
{
private JDialog dialog;
private JLabel label_dialog;
public WelcomeJFrame(String[] texts)
{
super("滚动字");
this.setSize(400,300);
this.setLocation(300,240);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
if(texts==null||texts.length==0)
this.add(new RollbyJPanel("Welcome!"));
else
{
this.setLayout(new GridLayout(texts.length,1));
for(int i=0;i<texts.length;i++)
this.add(new RollbyJPanel(texts[i]));
}
this.setVisible(true);
dialog=new JDialog(this,"提示",true);
dialog.setSize(240,80);
label_dialog=new JLabel("",JLabel.CENTER);
dialog.add(label_dialog);
dialog.setDefaultCloseOperation(HIDE_ON_CLOSE);
}
public WelcomeJFrame()
{
this(null);
}
private class RollbyJPanel extends JPanel implements ActionListener,Runnable
{
private JTextField text_word,text_sleep;
private JButton button_start,button_interrupt;
private JTextField text_state;
private Thread thread_rollby;
private int sleeptime;
private RollbyJPanel(String text)
{
this.setLayout(new GridLayout(2,1));
/*for(int i=0;i<100;i++)
text=text+"";
text_word=new JTextField(text);*/
char space[]=new char[100];
java.util.Arrays.fill(space, ' ');
剩余5页未读,继续阅读
- 粉丝: 9
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦