javabase项目程序(5)

2020-04-17 21:02

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 +\


javabase项目程序(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2015经典五一劳动节祝福语短信

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: