Java编程练习题(一)



 

 
Java编程练习题 (1)

1.在JApplet窗口中显示两张图片(soldier.jpg),一张是原尺寸,一张放大。
/*引入java.awt包和javax.swing包。*/
  import java.awt.*;
  import javax.swing.*;
 
  public class Eg_1 extends JApplet{
      Image soldier; //定义图形类对象
      public void init(){
          soldier = getImage(getCodeBase(),"soldier.jpg");/*获得图像*/
     }
     public void paint(Graphics g){  
        g.drawImage(soldier,0,0,this);   /* 用g(画笔)绘制图片,参数0,0是屏幕左角顶点坐标*/
        g.drawImage(soldier,0,65,300,60,this); //参数300,60是确定图像的大小。
    }
}   


2.创建一个窗口,在窗口中加入一个按钮,初涉Swing容器框架、内容面板及基本组件。
  import java.awt.*;         //引入java.awt包。
  import javax.swing.*;      //引入java.swing包。
  public class Eg_2 {      //声明类
      public Eg_2  () {                  //写该类的构造方法
          JFrame f = new JFrame();    //创建窗口底层容器框架(JFrame)对象f。
          Container contentPane = f.getContentPane();
          JButton button = new JButton ("按钮");          //创建按钮类对象实例。
          contentPane.add(button);         //将按钮组件button加到容器我的窗口
          f.setTitle("我的窗口");
          f.setSize(400,300);
          f.setVisible(true);
      }
      public static void main(String  args[]){
          new Eg_2();
      }


3利用面板(JPanel)设计左图所示的版面的容器结构,在窗口中放置五个标签,五个标签的摆放位置要求如右图。 

    
 

  

 

import java.awt.*; //步骤1:导入程序所需的java包
  import java.awt.event.*;
  import javax.swing.*;
       //步骤2:声明面版容器类
  public class Eg_3{
      public Eg7_3(){ //步骤3:编写该类的构造方法
      JFrame f = new JFrame("JPanelDemo");  //创建JFrame实例f。
      Container contentPane = f.getContentPane();//创建内容面版实例
      contentPane.setLayout(new GridLayout(2,1));//设置面版为网格布局管理器
     JLabel[] label = new JLabel[5];    //创建标签对象数组
       
        for(int i=0; i<label.length ; i++){   //用循环为数组元素赋初值
            label[i] = new JLabel("标签 "+(i+1),JLabel.CENTER);
            label[i].setBackground(Color.lightGray);
            label[i].setBorder(BorderFactory.createEtchedBorder());
            label[i].setOpaque(true);
          }
        JPanel panel1 = new JPanel(new GridLayout(1,1));/*创建面版容器实例*/
        panel1.add(label[0]);                   //将第一个标签加到panel中
        JPanel panel2 = new JPanel(new GridLayout(1,2));// 创建面版实例2
        JPanel panel3 = new JPanel(new GridLayout(1,2));//创建面版实例3
        panel3.add(label[1]);     //把第2个数组元素加到panel3上
        panel3.add(label[2]);     //把第3个数组元素加到panel3上
        JPanel panel4 = new JPanel(new GridLayout(2,1));// 创建面版实例4
        panel4.add(label[3]);    //把第4个数组元素加到panel4上
        panel4.add(label[4]);    //把第5个数组元素加到panel4上
        
        panel2.add(panel3);      //将面版容器panel3加到panel2上。
        panel2.add(panel4);      //将面版容器panel4加到panel2上。
        contentPane.add(panel1); //将面版容器panel1加到内容面版上。
        contentPane.add(panel2); //将面版容器panel2加到内容面版上。
        f.pack();               //使窗口可见。
        f.show();               //使窗口中的组件可见。
        f.addWindowListener(new WindowAdapter() { //41-43行处理关闭窗口动作
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
            });
        }
        public static void main(String[] arg){
           new Eg_3();
        }
}

 

 

 

4.设计一程序,绘制一个从矩形变化到圆的图形,要求先从坐标(3050)处画一120×120的矩形,再在该矩形中绘制7个圆角渐变为圆的矩形,最后的圆用红色填充。

  import  java.applet.*;  /* 设计步骤1:引*/

  import  java.awt.*;

 

  public class Eg_4 extends  Applet{  //步骤2:声明myRectRound类继承父类Applet

    public void paint(Graphics g){  //步骤3:编写paint()绘图方法。

         int x=20,y=20,w1=120,h1=120,hd1=10,hd2=10,i;  //定义局部变量

         g.drawRect(20,20,120,120); //在坐标(30,50)处画一个宽150120的矩形。

         g.setColor(Color.green);      //设置前景色为绿色

         g.fillRect(21,21,119,119);   //在坐标(32,52)处填充一个宽150120的矩形。

        g.setColor(Color.red);        //设置前景色为红色

        for(i=1;i<8;i=i+1){        //for循环画7个不同圆角矩形,

              g.drawRoundRect(x+=2,y+=2,w1=w1-8,h1=h1-8,hd1*i,hd2*i);}

              g.fillRoundRect(x+=2,y+=2,w1=w1-4,h1=h1-4,hd1*i,hd2*i);//圆角矩形

   }

 } 

 

 

 

 

 

5.设计一个程序,使用绘制椭圆的方法绘制一个如图所示的小熊图像。



 

  import java.applet.*; //步骤1:引入包

  import java.awt.*;

 

  public class Eg_5 extends Applet{ //步骤2:声明类

    public void paint(Graphics g){  //步骤3:编写paint()方法

      g.drawOval(40,60,80,60);    //67行绘制小熊的耳朵

      g.drawOval(180,60,80,60);  //绘制小熊的耳朵

      g.drawOval(60,70,180,190); //绘制一个椭圆作为小熊的脸

      g.drawOval(86,130,50,40);  //9~12行绘制小熊的眼睛

      g.fillOval(97,130,28,40);

      g.drawOval(166,130,50,40);

      g.fillOval(177,130,28,40);

      g.drawOval(123,170,50,50); //绘制小熊的鼻子嘴

    }

 }       

 

 

 

 

 

6. 绘制一个7彩的扇面。

 

 

import java.applet.*; 

import java.awt.*;

  public class Eg_6 extends Applet {

    public void paint(Graphics g){ 

   

        int r=20;             

        Color col[ ]={Color.red,Color.blue, Color.yellow,

                                  Color.orange,Color.green,

                                  Color.magenta,Color.cyan};

       

        for(int i=0;i<7;i+=1){   //采用循环方法绘制7个扇形图形。

            //g.setColor(Color.black);   //设置前景色为黑色

            //g.drawArc(30,40,150,150,r,20); //用前景色画一段弧,

          

            g.setColor(col[i]); //设置前景色为颜色数组下标为i的颜色。

            g.fillArc(30,40,149,149,r,20); //填充一扇形。

            r+=20;

        }

    }

 }                                  

 

 

 

 

7. Graphics2D类提供的方法画多彩直线.



 

import java.applet.*; //步骤1引入Graphics2D类需要的java.awt.*java.awt.geom.*

 import java.awt.*;

 import java.awt.geom.*;      //该包中含有Graphics2D类的方法

 

 public class Eg_7 extends Applet{ //步骤2 声明Line2D类,继承Applet

     public void paint(Graphics g){     //步骤3:写paint()方法,  

        int i,h1=20,h2=70,s1=0,s2=255,s3=0;//定义变量

        Color color;                       //定义颜色类对象

        Graphics2D g_2D=(Graphics2D)g;  //将对象g强制转换为Graphics2D类对象g_2D

        Line2D line;                    //创建Line2D类对象line     

        for(i=1;i<=4;i+=1){             //使用for循环绘制不同颜色的线段

            color=new Color(s1,s2,s3); 

            line=new Line2D.Double(h1,20,h2,20);  

            g_2D.setColor(color); //设置当前色

            g_2D.draw(line); //绘制直线

            h1+=50;h2+=50;

            s1+=50;s2-=50;    

        }

     }

 }                           

 

 

 

 

 

 

8. 绘制三个弧形图,一个是打开的弧,角度(45,180),高和宽(80,100),角度(45180)。一个是闭合的弧,角度(45,180),高和宽(80,100),角度(45180),一个是闭合的弧,角度(45,180),高和宽(80,100),角度(45300)



 

  import java.applet.*;

  import java.awt.*;

  import java.awt.geom.*;

     

  public class Eg_8 extends Applet{

    public void paint(Graphics g){ //步骤3:写绘图方法paint()

        g.setColor(Color.red);         //设置前景色为红色。

        Graphics2D g_2D=(Graphics2D)g;//强制将g转换为Graphics2D对象。

        Arc2D arc1=new Arc2D.Double(10,10,80,100,45,180, Arc2D.OPEN);

        Arc2D arc2=new Arc2D.Double(50,60,80,80,45,180, Arc2D.CHORD);

        Arc2D arc3=new Arc2D.Double(100,110,80,80,45,300, Arc2D.PIE);

        g_2D.fill(arc1);  //画圆弧1

        g_2D.fill(arc2);  //画圆弧2

        g_2D.fill(arc3);  //画圆弧3

    }

 }                 

 

 

 

 

 

9. 设计一个程序在窗口的东南西北中各放置一按钮,水平和垂直间据均为6



 

import java.awt.*;

 import java.awt.event.*;

 import javax.swing.*;

              

 public class Eg_9 {

 

    public Eg_9(){   //构造方法

       

        JFrame f = new JFrame("123456");  //创建FRame对象f,并用构造方法进行实例化。

        Container contentPane = f.getContentPane();

       

        contentPane.setLayout(new BorderLayout(6,6));//边界布局,行和列的间隔为6像素

       

        contentPane.add(new JButton(""),BorderLayout.EAST); // ""

        contentPane.add(new JButton("西"),BorderLayout.WEST); // "西"

        contentPane.add(new JButton(""),BorderLayout.SOUTH); // ""

        contentPane.add(new JButton(""),BorderLayout.NORTH); // "

       

        contentPane.add(new JLabel("errawatwatewatewatwat3?,JLabel.CENTER),BorderLayout.CENTER); //""

       

        //f.setTitle("MyBorderLayout");             //设置窗口标题

        f.setSize(400,300);

        //f.pack();                           //以紧凑方式显示

        f.setVisible(true);                   //设置可见,缺省为不可见

     

    }

               

    public static void main(String args[]) {

        new  Eg_9();

    }

 }

 

 

 

 

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容简介 《Java程序设计习题集》是同作者所编写的清华大学教材《Java程序设计》相配套的习题集。习题集内容覆盖面广,包括:Java言的基本常识、基本语法、面向对象的基本概念、数组、字符串、异常处理、文件和数据流、图形用户界面设计、小应用程序、线程、编程规范、网络程序设计、多媒体民图形学程序设计以及数据库程序设计等。全书共分为习题、参考答案和测试要点与解题说明3个部分。习题包括判断正误、填空题、选择题、简答题、编程题和趣味题等6种题型,并按难易程序分为3 个等级,采用星号注明。本习题集收集了Java程序编写常见问题,并以习题形式总结和归纳Java程序设计知识要点,同时兼顾了SCJP(Sun公司 Java程序员认证考试),从而降低学习难度,减少编写程序出现错误的枘地,也便于掌握各个知识要点或测试对Java程序设计的掌握熟练程度。这些特点有利于初学者在学习过程中少走弯路。对知识点的总结以及内容的全面性也使得《Java程序设计习题集》具有一定的手册特性,非常适合复习,同时也方便教师出题,使得各章节的试题容易在试卷中分布均匀合理。在本习题集中的编程题和趣味题还有可能采用其他计算机语言实现,从而本习题集也有可能成为学习其他计算机语言的实践素材。 编辑推荐 内容全面:习题全面覆盖了Java程序设计(J2SE)的基本知识要点和重要知识要点。以习题的形式对JaVa程序设计方法和常见问题进行了总结与归纳,从而方便复习。   实用性:《Java程序设计习题集》每章都含有一些趣味题,营造了一种轻松而快乐的学习氛围,努力培养和提高学生的学习乐趣,同时也使学生容易产生学习成就感。   趣味性:习题基本上覆盖了程序员在编写Java程序时经常出现的问题Java程序设计知识要点,各习题也列出其测试要点,从而方便教师从中挑选或改编考题以及方便学生进行实战模拟练习或测试,同时也可以为SCJP考试作准备。   简洁性:每道习题者晖力求典型而简洁,这样既方便初学者,也有利于提高学习效率,在较短的时间内测试并领会较多的知识要点。 作者简介 雍俊海1991年到2000年就读于清华大学计算机科学与技术系,获学士。硕士和博士学位,被评为清华大学优秀博士毕业生,博士论文被评为全国优秀博士论文。从2000年3月到2000年6月在香港科技大学计算机系担任访问研究员,从2000年11月到2002年9月在美国肯塔基大学计算机系做博士后,现为清华大学软件学院教师。参与或负责多个国家自然科学基金项目。国家863项目。973项目和美国自然科学基金项目。在2003-2004学年度在清华大学开设了"Java程序设计"课程,获得学生一致好评。根据清华大学2003-2004学年秋季学期教学评估结果,教学成绩在全校名列前茅,在清华大学软件学院所有参评教师中取得教学成绩第一名,在所有讲授Jaya课程的清华大学参评教师中获得教学成绩第一名。因此还获得了清华大学软件学院教学工作优秀奖、大学生研究训练计划(SRT)优秀指导教师一等奖。 目录 第一部分习题 第1章 绪论 第2章 结构化程序设计 第3章 面向对象程序设计 第4章 数组、字符串与异常处理 第5章 文件与数据流 第6章 图形用户界面设计 第7章 小应用程序 第8章 多线程程序设计 第9章 编程规范 第10章 网络程序设计 第11章 多媒体与图形学程序设计 第12章 数据库程序设计 第二部分 参考答案 第1章 绪论 第2章 结构化程序设计 第3章 面向对象程序设计 第4章 数组、字符串与异常处理 第5章 文件与数据流 第6章 图形用户界面设计 第7章 小应用程序 第8章 多线程程序设计 第9章 编程规范 第10章 网络程序设计 第11章 多媒体与图形学程序设计 第12章 数据库程序设计 第三部分 测试要点与解题说明 第1章 绪论 第2章 结构化程序设计 第3章 面向对象程序设计 第4章 数组、字符串与异常处理 第5章 文件与数据流 第6章 图形用户界面设计 第7章 小应用程序 第8章 多线程程序设计 第9章 编程规范 第10章 网络程序设计 第11章 多媒体与图形学程序设计 第12章 数据库程序设计 参考文献
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值