Java-3

1. 使用编写代码的方式,设计一个用户界面如下图所示:

//package Number1;

import java.awt.*;

import javax.swing.*;

public class Calculator {

    public static void main(String[] args)

    {

       JFrame frm = new JFrame("Calculator");

       frm.setLayout(new FlowLayout());

       TextField tf1 = new TextField("",20);

       TextField tf2 = new TextField("",20);

       frm.add(tf1);

       frm.add(tf2);

       Button btn1 = new Button("+");

       Button btn2 = new Button("-");       

       Button btn3 = new Button("*");

       Button btn4 = new Button("/");

       btn1.setForeground(Color.red);

       btn2.setForeground(Color.green);

       btn3.setForeground(Color.magenta);

       btn3.setForeground(Color.blue);

       frm.add(btn1);

       frm.add(btn2);

       frm.add(btn3);

       frm.add(btn4);

       TextField tfResult = new TextField("",20);

       frm.add(tfResult);

       frm.setBounds(500,300,200,200);

       frm.setVisible(true);

       frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

}

2. 使用编写代码的方式,设计一个含有菜单的用户界面.

Code and work:

package ChooseClasses;

import javax.swing.*;

import java.awt.*;

 

public class Choose {

    public static void main(String[] args)

    {

       JFrame frm = new JFrame("选课系统");

       frm.setBounds(500,200,400,400);

       MenuBar mb = new MenuBar();

       frm.setMenuBar(mb);

       Menu jm1 = new Menu("文体类");

       Menu jm2 = new Menu("计算机类");

       Menu jm3 = new Menu("帮助");

       mb.add(jm1);

       mb.add(jm2);

       mb.add(jm3);

       jm1.add(new MenuItem("艺术欣赏"));

       jm1.add(new MenuItem("健美操"));

       jm1.add(new MenuItem("篮球"));

       jm2.add(new MenuItem("Java 语言"));

       jm2.add(new MenuItem("网络编程"));

       jm3.add(new MenuItem("选课方法"));

       frm.setVisible(true);

       frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

}

    

3. 编写一个图形界面程序,运行后界面如下图,其中绘制矩形的方法是drawRect(40,50,120,80)。

代码及截图如下所示:

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class TestDraw extends JFrame{

    public void paint(Graphics g)

    {

       g.setColor(Color.black);

       g.drawRect(40,50,120,80);

       g.drawOval(40, 50,120, 80);

       g.drawOval(40,80,30,20);

       g.drawOval(40,70, 60, 40);

       //g.fillRect(120,40,100,60);

    }

    public static void main(String[] args)

    {

       TestDraw f = new TestDraw();

       f.setLayout(new FlowLayout());

       f.setTitle("Paint");

       f.setBounds(300,200,200,150);

       //f.setSize(230,120);

       f.setDefaultCloseOperation(EXIT_ON_CLOSE);

       f.setVisible(true);

    }

 

}

//此题中最关键的是掌握如何设置g.drawOval()的参数,只有当设置合适的参数才可以得到

//最后想要的结果。

4. (1)  编写画出笑脸(如下图左)的程序。

   (2)  编写画出哭脸(如下图右)的程序。

(3)  编写“变脸”程序: 将1和2结合, 再加入一个事件处理程序mouseUp(),使程序运行后出现一张笑脸,鼠标点击一次则变成哭脸,再点击一次又变成笑脸,依次轮换。

代码及截图:

import java.awt.*;

 

import javax.swing.*;

import java.awt.event.*;

public class FaceChange {

    public static void main(String[] args)

    {

       JFrame jf = new JFrame("ChangeFace");

       jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

       jf.setBounds(300,300,300,300);

       jf.setVisible(true);

       jf.add(new SmileAndSad());

       jf.validate();

    }

}

 

class SmileAndSad extends Canvas implementsMouseListener

{

    int count = 0;

    public SmileAndSad()

    {

       addMouseListener(this);

    }

    public void paint(Graphics g){

       if(count==1){

           g.drawString("笑脸",10,10);

           g.setColor(Color.red);

           g.drawOval(80,30,80,120);

           g.drawArc(100,70,20,10,20,140);

           g.drawArc(130,70,20,10,20,140);

           g.drawArc(105,110,40,20,180,180);

           g.drawString("哈哈哈哈!",120,200);

       }

       else{

           g.drawString("哭脸", 10, 10);

           g.drawOval(80,30,80,120);

           g.drawArc(100,70,20,10,200,140);

           g.drawArc(130,70,20,10,200,140);

           g.drawArc(105,110,40,20,0,180);

           g.drawString("呜呜呜呜!",120,200);

       }

    }

    public void mousePressed(MouseEvent e){

       if(e.getModifiers()==InputEvent.BUTTON1_MASK){

           count=(1+count)%2;

           repaint();

       }

    }

    public void mouseReleased(MouseEvent e){}

    public void mouseEntered(MouseEvent e){}

    public void mouseClicked(MouseEvent e){}

    public void mouseExited(MouseEvent e){}

    public void update(Graphics g){

       super.update(g);

       paint(g);

 

    }

}

 

5. 用编写代码方式,编写一个“Press Me”程序,运行后初始界面如下图左,它能累计点击按钮的次数,下图右是点击3次后的结果。

  (窗口是FlowLayout布局, 宽170、高90, 文本框宽12) 

代码及截图:

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

 

public class Press extends JFrame{

    public int numClicks = 0;

    //JTextField jtf = new JTextField();

    //设置文本框的宽度;

    private JTextField jtf = new JTextField(12);

    private JButton jbt = new JButton("Pressme");

    public Press()

    {

       super();

       setLayout(new FlowLayout());

       setSize(170,90);

       setTitle("点死你");

       add(jtf);

       add(jbt);

       setBounds(100,100,200,200);

       setVisible(true);

       jtf.setText("您还没点我啊!");

       //String temp;

       jbt.addActionListener(new ActionListener()

       {

           public void actionPerformed(ActionEvent e)

           {

              numClicks++;

           //jtf.setText("");

              //temp =

              jtf.setText("您已经点了我"+numClicks +"次了");

           }  

       });

    }

   

   

    public static void main(String[] args)

    {

       new Press();

    }

}

6.  设计一个“自助早餐”的图形界面事件处理程序,运行后界面如下图左;选择早点后界面如下图右;点击“确定”则退出。(提示:需要编写列表的itemStateChanged()事件处理方法)

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import javax.swing.event.*;

 

import java.awt.event.*;

 

public class Test extends Frame

{

    public static void main(String[] args)

    {

       Test tsm = new Test();

       tsm.setTitle("点早餐了");

       //tsm.setBackground(Color.ORANGE);

       tsm.setLayout(new FlowLayout());

       final List list = new List(10,true);

       list.add(" 名称        单价  ");

       list.add("****************");

       list.add(" 馒头         0.2");

       list.add(" 花卷         0.3");

       list.add(" 面包         0.5");

       list.add(" 蛋糕         0.8");

       list.add(" 豆浆         0.5");

       list.add(" 牛奶         1.0");

       Panel p1 = new Panel();

       p1.setLayout(new BorderLayout());

       Label l1 = new Label("请选择早点");

       p1.add("North",l1);

       p1.add("South",list);

       tsm.addWindowListener(new WindowAdapter()

       {

           public void windowClosing(WindowEvent e)

           {

              System.exit(0);

           }

       });

       tsm.add(p1);

       Label l2 = new Label("您选择了:");

       final TextArea foodResult = new TextArea(10,18);

       final float[] money ={ 0.20f, 0.30f, 0.50f, 0.80f, 0.50f,1.00f };// 设置单价;

       list.addItemListener(new ItemListener()

       {

           public void itemStateChanged(ItemEvent evt)

           {

              float total = 0.0f;

              int select = list.getSelectedIndex() - 2;

              float a = money[select];

              //a += 0.3;

              String s = String.valueOf(a);

              String item1 = list.getItem(select+2);

              //String item2 =list.getItem(select+1);

              foodResult.append(item1);

              foodResult.append("\n");

              //foodResult.append(item2);

              foodResult.append("\n");

              foodResult.append("\n");

              foodResult.append(" 总计 :       " + s + "");

           }

       });

       Button btn = new Button("确定");

       Panel p2 = new Panel();

       p2.setLayout(new BorderLayout());

       p2.add("North",l2);

       p2.add(foodResult);

       tsm.add(p2);

       tsm.add(btn);

       btn.addActionListener(new ActionListener()

       {

           public voidactionPerformed(ActionEvent e) {

              System.exit(0);

           }

       });

       tsm.setBackground(Color.orange);

       tsm.setBounds(100,100,500,300);

       tsm.setVisible(true);

    }

}

(注:此题还有一定的问题。由于考试原因,暂时把程序做到这里了)

7.开发一个加、减、乘、除四则运算器。

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class Calculator {

    public static void main(String[] args)

    {

       JFrame frm = new JFrame("Calculator");

       frm.setLayout(new FlowLayout());

       final TextField tf1 = new TextField("",20);

       String s1 = tf1.getText();

       //double d1 =Double.parseDouble(s1);

      

       final TextField tf2 = new TextField("",20);

       frm.add(tf1);

       frm.add(tf2);

       Button btn1 = new Button("+");

       Button btn2 = new Button("-");       

       Button btn3 = new Button("*");

       Button btn4 = new Button("/");

       btn1.setForeground(Color.red);

       btn2.setForeground(Color.green);

       btn3.setForeground(Color.magenta);

       btn3.setForeground(Color.blue);

       frm.add(btn1);

       frm.add(btn2);

       frm.add(btn3);

       frm.add(btn4);

       final TextField tfResult = new TextField("",20);

       frm.add(tfResult);

       frm.setBounds(500,300,200,200);

      

       //实现计算器的功能;

       // 加分功能的实现;

       btn1.addActionListener(new ActionListener()

       {

           public void actionPerformed(ActionEvent e)

           {

              String s1 = tf1.getText();

              double d1 = Double.parseDouble(s1);

              String s2 = tf2.getText();

              double d2 = Double.parseDouble(s2);

              double d = d1 + d2;

              String res = String.valueOf(d);

              tfResult.setText(res);

           }

       });

      

       // 减法功能的实现;

       btn2.addActionListener(new ActionListener()

       {

           public void actionPerformed(ActionEvent e)

           {

              String s1 = tf1.getText();

              double d1 = Double.parseDouble(s1);

              String s2 = tf2.getText();

              double d2 = Double.parseDouble(s2);

              double d = d1 - d2;

              String res = String.valueOf(d);

              tfResult.setText(res);

           }

       });

      

       // 乘法功能的实现;

       btn3.addActionListener(new ActionListener()

       {

           public void actionPerformed(ActionEvent e)

           {

              String s1 = tf1.getText();

              double d1 = Double.parseDouble(s1);

              String s2 = tf2.getText();

              double d2 = Double.parseDouble(s2);

              double d = d1 * d2;

              String res = String.valueOf(d);

              tfResult.setText(res);

           }

       });

      

       // 除法功能的实现;

       btn4.addActionListener(new ActionListener()

       {

           public void actionPerformed(ActionEvent e)

           {

              String s1 = tf1.getText();

              double d1 = Double.parseDouble(s1);

              String s2 = tf2.getText();

              double d2 = Double.parseDouble(s2);

              String res = new String();

              if(d2==0)

              {

                  res = "Error";

              }

              else{

                  double d = d1/d2;

                  res = String.valueOf(d);

              }

             

              tfResult.setText(res);

           }

       });

       frm.setVisible(true);

       frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

}

(二)Applet编程

1.编写一个Applet,显示一幅图象并配上背景音乐。

import java.awt.*;

import java.applet.*;

import java.applet.Applet;

 

public class applet extends Applet {

    Image img1;

   

    AudioClip aud;

    public void init()

    {

       this.setLocation(10,10);

       this.setSize(300,300);

       img1 = this.getImage(getCodeBase(),"Frank.JPG");

       aud = this.getAudioClip(getCodeBase(),"001.au");

        //this.setSize(10);

    }

    public void paint(Graphicsg)

    {

       g.drawImage(img1,10,10,200,200,Color.green,this);

    }

    public void start(){

       aud.play();

    }

    public void stop()

    {

       aud.stop();

    }

}

+music

2.编写一个Applet或JApplet,实现一个小球沿抛物线移动,到达地面时播放一个响声。(利用抛物线方程 y=a(x-b)2计算小球位置,b是小球离地面的最大高度 )

代码及截图:

import java.awt.*;

import javax.swing.*;

 

public class applet extends JApplet implements Runnable

{

    private static final long serialVersionUID = 1l;

    int x;

    int y;

   

    //init

    public void init()

    {

       x = 0;

    }

    public void start()

    {

       Thread ani = new Thread(this);

       ani.start();

    }

    public void run()

    {

       while(true)

       {

           if((x >= 1)&&(x <= 16))

              repaint();

           try

           {

              Thread.sleep(1000);

           }catch(InterruptedException e){

             

           }

             

       }

    }

    public void paint(Graphics g)

    {

       int a = 10;

       int b = 9;

       g.setColor(Color.red);

       x= x+1;

       y = (x-b)*(x-b);

       g.fillOval(30*x, a*y, 10, 10);

       if(x==16)

           play(getCodeBase(),"001.au");

    }

    public void update(Graphics g)

    {

       paint(g);

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值