3.
/***************************************************************************************
项目:商品管理系统
功能:增删改查 (可按各种属性查) 商品属性:名称、价格(两位小数)、种类
***************************************************************************************/
day17 图形界面 1. 计算器
/*****************例题 画出计算器的界面***************************** 界面如下:
1 2 3 + 4 5 6 - 7 8 9 * 0 . = / *******************/ import java.awt.*; import javax.swing.*;
class Calculator {
public static void main(String[] args){ JTextField text = new JTextField(); JFrame f = new JFrame(\计算器\
Font font = new Font(\宋体\宋体\想写成默认,则写“null” text.setFont(font); //定义字体
text.setHorizontalAlignment(JTextField.RIGHT);//令text的文字从右边起 text.setEditable(false);//设置文本不可修改,默认可修改(true)
f.add(text, BorderLayout.NORTH);//Frame和Dialog的默认布局管理器是Border Layout ButtonActionListener listener = new ButtonActionListener(text);//事件反应在text中 JPanel buttonPanel = new JPanel();//设法把计算器键盘放到这个Jpanel按钮上 String op = \
GridLayout gridlayout = new GridLayout(4,4,10,10);
buttonPanel.setLayout(gridlayout);//把计算器键盘放到buttonPanel按钮上 for(int i=0; i char c = op.charAt(i); //拿到字符串的第i个字符 JButton b = new JButton(c+\把字符放到按钮上 b.addActionListener(listener);//在按钮上放置监听器,每次按都会有反应 buttonPanel.add(b);//把按钮放到buttonPanel上 }//这个循环很值得学习,很常用 f.add(buttonPanel/*, BorderLayout.CENTER*/); //默认添加到CENTER位置 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(300, 250); f.setVisible(true);//这句要放到最后,等事件完成后再显示 }} //监听者 class ButtonActionListener implements ActionListener{ private JTextField textField; public ButtonActionListener(JTextField textField) { this.textField = textField; } public void actionPerformed(ActionEvent e) {//必须覆盖它的actionPerformed() textField.append(\哈哈,放了几个字\\n\}} /*********************未实现计算器的具体功能*******************************/ 2. 扫雷游戏 3. 俄罗斯方块 day19 多线程 写两个线程,一个线程打印 1~52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。要求用线程间的通信。 注:分别给两个对象构造一个对象o,数字每打印两个或字母每打印一个就执行o.wait()。 在o.wait()之前不要忘了写o.notify()。 class Test{ public static void main(String[] args) { Printer p = new Printer(); Thread t1 = new NumberPrinter(p); Thread t2 = new LetterPrinter(p); t1.start(); t2.start(); } } class Printer{ private int index = 1;//设为1,方便计算3的倍数 //打印数字的构造方法,每打印两个数字,等待打印一个字母 public synchronized void print(int i){ while(index%3==0){try{wait();}catch(Exception e){}} System.out.print(\ index++; notifyAll(); } //打印字母,每打印一个字母,等待打印两个数字 public synchronized void print(char c){ while(index%3!=0){try{wait();}catch(Exception e){}} System.out.print(\ index++; notifyAll(); } } //打印数字的线程 class NumberPrinter extends Thread{ private Printer p; public NumberPrinter(Printer p){this.p = p;} public void run(){ for(int i = 1; i<=52; i++){ p.print(i); } } } //打印字母的线程 class LetterPrinter extends Thread{ private Printer p; public LetterPrinter(Printer p){this.p = p;} public void run(){ for(char c='A'; c<='Z'; c++){ p.print(c); } } } /*如果这题中,想保存需要打印的结果,可在Printer类里定义一个成员变量 String s = \不写“”的话是null,null跟没有东西是不一样的,它会把null当成字符 =_= 然后在两个print()方法里面,while循环后分别加上 s = s + \以及 s = s +\ 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库javabase项目程序(5)在线全文阅读。
相关推荐: