GUI线程
2015-12-16 11:07
363 查看
界面编程我又新学一种方式:一个类可以对多个接口实现,并且继承另外一个类,这样都写在一个类里可以减少类之间调用的错误,而且直接调用更方便
书上一个字母游戏的例子让我印象深刻
包括其中用标签作输出,我特地查了一些他的构造函数和一些用法:
1、JLabel常用的一些构造函数
JLabel()
创建无图像并且其标题为空字符串的 JLabel。
JLabel(Icon image)
创建具有指定图像的 JLabel 实例。
JLabel(Icon image, int horizontalAlignment)
创建具有指定图像和水平对齐方式的 JLabel 实例。
JLabel(String text)
创建具有指定文本的 JLabel 实例。
JLabel(String text, Icon icon, int horizontalAlignment)
创建具有指定文本、图像和水平对齐方式的 JLabel 实例。
JLabel(String text, int horizontalAlignment)
创建具有指定文本和水平对齐方式的 JLabel 实例。
2、方法(也是可以显示图标的哦)
String getText()
返回该标签所显示的文本字符串。
void setText(String text)
定义此组件将要显示的单行文本。
Icon getIcon()
返回该标签显示的图形图像(字形、图标)。
void setIcon(Icon icon)
定义此组件将要显示的图标。
书上一个字母游戏的例子让我印象深刻
包括其中用标签作输出,我特地查了一些他的构造函数和一些用法:
1、JLabel常用的一些构造函数
JLabel()
创建无图像并且其标题为空字符串的 JLabel。
JLabel(Icon image)
创建具有指定图像的 JLabel 实例。
JLabel(Icon image, int horizontalAlignment)
创建具有指定图像和水平对齐方式的 JLabel 实例。
JLabel(String text)
创建具有指定文本的 JLabel 实例。
JLabel(String text, Icon icon, int horizontalAlignment)
创建具有指定文本、图像和水平对齐方式的 JLabel 实例。
JLabel(String text, int horizontalAlignment)
创建具有指定文本和水平对齐方式的 JLabel 实例。
2、方法(也是可以显示图标的哦)
String getText()
返回该标签所显示的文本字符串。
void setText(String text)
定义此组件将要显示的单行文本。
Icon getIcon()
返回该标签显示的图形图像(字形、图标)。
void setIcon(Icon icon)
定义此组件将要显示的图标。
public class Example12_10 { public static void main(String args[]) { WindowTyped win=new WindowTyped(); win.setTitle("打字母游戏"); win.setSleepTime(3000); } } import java.awt.*; import java.awt.event.*; import javax.swing.*; public class WindowTyped extends JFrame implements ActionListener,Runnable { JTextField inputLetter; Thread giveLetter; //负责给出字母 JLabel showLetter,showScore; int sleepTime,score; Color c; WindowTyped() { setLayout(new FlowLayout()); giveLetter=new Thread(this); inputLetter=new JTextField(6); showLetter =new JLabel(" ",JLabel.CENTER); showScore = new JLabel("分数:"); showLetter.setFont(new Font("Arial",Font.BOLD,22)); //修改字体格式 add(new JLabel("显示字母:")); add(showLetter); add(new JLabel("输入所显示的字母(回车)")); add(inputLetter); add(showScore); inputLetter.addActionListener(this); setBounds(100,100,400,280); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); giveLetter.start(); //在AWT-Windows线程中启动giveLetter线程 } public void run() { char c ='a'; while(true) { showLetter.setText(""+c+" "); validate(); c = (char)(c+1); if(c>'z') c = 'a'; try{ Thread.sleep(sleepTime); } catch(InterruptedException e){} } } public void setSleepTime(int n){ sleepTime = n; } public void actionPerformed(ActionEvent e) { String s = showLetter.getText().trim(); String letter = inputLetter.getText().trim(); if(s.equals(letter)) { score++; showScore.setText("得分"+score); inputLetter.setText(null); validate(); giveLetter.interrupt(); //吵醒休眠的线程,以便加快出字母的速度 } } }
相关文章推荐
- Android UiAutomator环境配置
- ios UICollectionView实现不同大小cell等间距
- Sql语句:IF ELSE CASE WHEN WHILE CONTINUE BREAK
- 使用Supervisor管理resque
- UIView简介及常用设置
- 调用一个UITableview的一个代理的方法,实现UITableview重载
- easyui
- iOS开发 ~应用程序设计理念:视图控制器(UIViewController)、视图(UIView)
- Android UI中遇到的问题
- UICollectionView详解
- iOS 开发~UIWindow
- iOS04- UIButton的小常识
- 晓月_【关于UI】
- 使用phpQuery轻松采集网页内容
- iOS开发的UI制作中动态和静态单元格的基本使用教程
- iOS_带文字的UISwitch
- Ext.get() 和 Ext.query() 组合使用 实现 最灵活的取元素方式
- @ResponseBody & @RequestBody
- iOS03-UIView用户交互相关的属性和方法
- iOS02 UILable和UITextFiled的自定义