java操作题23套

基本操作

在考生文件夹中存有文件名为Java_1.java的文件,该程序是不完整的,请在注释行"//Found"下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
程序的功能是:创建两个线程,每个线程每次会输出一个累计增加的整数和线程名(“第1”或“第2”),共计5次。最后,两个线程输出“运行!”与线程名。程序的某次运行结果如下:
0第1
0第2
1第1
1第2
2第1
2第2
3第1
3第2
4第1
4第2
运行!第1
运行!第2

public class Java_1
{
//Found*
public static void main (_________________ args[])
{
new SimpleThread(“第1”).start();
new SimpleThread(“第2”).start();
}
}

//Found*
class SimpleThread extends ________________
{
public SimpleThread(String str)
{
super(str);
}
public void run()
{
for (int i = 0; i < 5; i++)
{
//Found*
System.out.println(i + " " + ______________());
try
{
sleep((int)(2 * 100));
}
catch (InterruptedException e) { }
}
System.out.println("运行! " + getName());
}
}

本题考查的是线程。
在main方法中,参数为字符串数组,参数名随意,所以第一空填写"String"。
根据题意可知,需要创建线程然后运行得到结果,所以这里的SimpleThread应该继承Thread,所以第二空填写"Thread"。
根据题目要求得知需要在输出结果中加入线程名,所以第三空填写"getName"。
具体程序如下:

public class Java_1
{
   //*********Found**********
   public  static  void main (String args[])
   {
      new SimpleThread("第1").start();
      new SimpleThread("第2").start();
   }
} 

//*********Found**********
class SimpleThread extends Thread
{
   public SimpleThread(String str)
   {
      super(str);
   }
   public void run()
   {
      for (int i = 0; i < 5; i++)
      {
   //*********Found**********
         System.out.println(i + " " + getName());
         try
         {
            sleep((int)(2 * 100));
         }
         catch (InterruptedException e) { }
      }
      System.out.println("运行! " + getName());
   }
}
 

简单应用

在考生文件夹中存有文件名为Java_2.java的文件,该程序是不完整的,请在注释行"//Found"下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
程序的功能是:程序中定义了抽象类Person和其两个具体子类Worker和Student,并定义类Worker和Student的实例各一个,显示了两个实例的描述信息。程序运行时输出结果如下:

在这里插入图片描述

import java.text.*;

public class Java_2
{
public static void main(String[] args)
{
Person[] people = new Person[2];
people[0] = new Worker(“老张”, 30000);
people[1] = new Student(“小王”, “计算机科学”);
for (int i = 0; i < people.length; i++)
{
Person p = people[i];
//Found*
System.out.println(____________________() + ", " + p.getDescription());
}
}
}

//Found*
________________ class Person
{
public Person(String n)
{
name = n;
}
//Found*
public ___________________ String getDescription();
public String getName()
{
return name;
}
private String name;
}

//Found*
class Worker _________________ Person
{
public Worker(String n, double s)
{
super(n);
salary = s;
}
public String getDescription()
{
NumberFormat formatter = NumberFormat.getCurrencyInstance();
return "工人,年薪是 " + formatter.format(salary) + “。”;
}
private double salary;
}

//Found*
class Student _________________ Person
{
public Student(String n, String m)
{
super(n);
major = m;
}
public String getDescription()
{
return "学生,专业是 " + major + “。”;
}
private String major;
}

本题考查的是继承。
根据题意得知,输出开头为每一个人的名字,所以第一空填写"p.getName"。
在本题中,无论是老张还是小王等,他们虽然职业不同,年龄不同等,但是他们都有一个共同点,那就是都是人类,所以在该例中,创建了一个Person类,但是由于每一个人的职业不同,所以导致Person类并不一定适用于所有人,只能抽取其中共同点,如:每个人都有名字,年龄等。所以该类是抽象类,第二空填写"
abstract"。
getDescription根据后面的工人类和学生类可知,该方法输出的是每个人的职业的特点,所以该方法是抽象方法,第三空填写" abstract"。
抽象类是用来继承的,所以第四空和第五空填写"extends"。
具体程序如下:

import java.text.*;
public class Java_2
{
   public static void main(String[] args)
   {
      Person[] people = new Person[2];
      people[0] = new Worker("老张", 30000);
      people[1] = new Student("小王", "计算机科学");
      for (int i = 0; i < people.length; i++)
      {
         Person p = people[i];
         //*********Found**********
         System.out.println(p.getName() + ", " + p.getDescription());
      }
   }
}

//*********Found**********
abstract class Person
{
   public Person(String n)
   {
     name = n;
   }
//*********Found**********
   public abstract String getDescription();
   public String getName()
   {
     return name;
   }
   private String name;
}

//*********Found**********
class Worker extends Person
{
   public Worker(String n, double s)
   {
      super(n);
      salary = s;
   }
   public String getDescription()
   {
      NumberFormat formatter = NumberFormat.getCurrencyInstance();
      return "工人,年薪是 " + formatter.format(salary) + "。";
   }
   private double salary;
}

//*********Found**********
class Student extends Person
{
   public Student(String n, String m)
   {
      super(n);
      major = m;
   }
   public String getDescription()
   {
      return "学生,专业是 " + major + "。";
   }
   private String major;
}

ActionListener()
         {  
            public void actionPerformed(ActionEvent evt)
            {  
               int r = chooser.showOpenDialog(null);
               if(r == JFileChooser.APPROVE_OPTION)
               {  
          //*********Found**********
                  String name = chooser.getSelectedFile().getPath();
                  label.setIcon(new ImageIcon(name));
               }
            }
         });

综合应用

在考生文件夹中存有文件名为Java_3.java的文件,该程序是不完整的,请在注释行"//**********Found**********"下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。在考生文件夹中存有文件名为Java_3.java文件和两个图形文件014.JPG和306.JPG。
本题的要求是:
在图形用户界面中,在JFrame窗口的左上方,有一个“红军不怕远征难”的字符串,用户可以通过窗口中的File菜单下的Open子菜单来选择014.JPG图片或306.JPG图片,并将选中的图片显示出来。在窗口下方有一个选择框可对“红军不怕远征难”的字符串进行字体选择。该程序运行时的界面如下显示:

在这里插入图片描述

import java.awt.;
import java.awt.event.
;
import java.io.;
import javax.swing.
;

public class Java_3
{
public static void main(String[] args)
{
JFrame frame = new ImageViewerFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Found*
frame.setVisible(_________);
}
}

class ImageViewerFrame extends JFrame
{
private JLabel label;
private JLabel labelT;
private JFileChooser chooser;
private JComboBox faceCombo;
private static final int DEFAULT_SIZE = 24;
public static final int DEFAULT_WIDTH = 570;
public static final int DEFAULT_HEIGHT = 400;

public ImageViewerFrame()
{
setTitle(“ImageViewer”);
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
label = new JLabel();
Container contentPane = getContentPane();
contentPane.add(label,BorderLayout.CENTER);
chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
//Found*
JMenu menu = new JMenu("__________");
menuBar.add(menu);
JMenuItem openItem = new JMenuItem(“Open”);
//Found*
_____________.add(openItem);
openItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
int r = chooser.showOpenDialog(null);
if(r == JFileChooser.APPROVE_OPTION)
{
//Found*
String name = .getSelectedFile().getPath();
label.setIcon(new ImageIcon(name));
}
}
});
labelT = new JLabel(“红军不怕远征难”);
labelT.setFont(new Font(“隶书”, Font.PLAIN, DEFAULT_SIZE));
contentPane.add(labelT, BorderLayout.NORTH );
faceCombo = new JComboBox();
faceCombo.setEditable(true);
faceCombo.addItem(“隶书”);
faceCombo.addItem(“华文新魏”);
faceCombo.addItem(“华文行楷”);
faceCombo.addItem(“华文隶书”);
faceCombo.addActionListener(new
ActionListener()
{
public void actionPerformed(ActionEvent event)
{
//Found*
labelT.setFont(new Font((String)
.getSelectedItem(),
Font.PLAIN, DEFAULT_SIZE));
}
});
JPanel comboPanel = new JPanel();
comboPanel.add(faceCombo);
contentPane.add(comboPanel, BorderLayout.SOUTH);
}
}

本题考查的是JavaSwing。
setVisible方法表示是否显示窗口,所以第一空填写"true"。
JMenu是一个菜单栏类,根据题意得知,菜单栏叫File,所以第二空填写"File"。
openItem是菜单栏内的具体内容,所以需要将其加入菜单栏中,所以第三空填写"menu"。
JFileChooser可以获得在返回的文件路径,所以第四空填写"chooser"。
添加的事件中,label改变的字体需要的是下拉框中选中的字体,所以第五空填写"faceCombo"。
具体程序如下:

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;

public class Java_3
{
   public static void main(String[] args)
   {
      JFrame frame = new ImageViewerFrame();
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      //*********Found**********
      frame.setVisible(true);
   }
}

class ImageViewerFrame extends JFrame
{
   private JLabel label;
   private JLabel labelT;
   private JFileChooser chooser;
   private JComboBox faceCombo;
   private static final int DEFAULT_SIZE = 24;
   public static final int DEFAULT_WIDTH = 570;
   public static final int DEFAULT_HEIGHT = 400;

   public ImageViewerFrame()
   {
      setTitle("ImageViewer");
      setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
      label = new JLabel();
      Container contentPane = getContentPane();
      contentPane.add(label,BorderLayout.CENTER);
      chooser = new JFileChooser();
      chooser.setCurrentDirectory(new File("."));
      JMenuBar menuBar = new JMenuBar();
      setJMenuBar(menuBar);
      //*********Found**********
      JMenu menu = new JMenu("File");
      menuBar.add(menu);
      JMenuItem openItem = new JMenuItem("Open");
      //*********Found**********
      menu.add(openItem);
      openItem.addActionListener(new 


labelT = new JLabel("红军不怕远征难");
      labelT.setFont(new Font("隶书", Font.PLAIN, DEFAULT_SIZE));
      contentPane.add(labelT, BorderLayout.NORTH );
      faceCombo = new JComboBox();
      faceCombo.setEditable(true);
      faceCombo.addItem("隶书");
      faceCombo.addItem("华文新魏");
      faceCombo.addItem("华文行楷");
      faceCombo.addItem("华文隶书");
      faceCombo.addActionListener(new
         ActionListener()
         {  


public void actionPerformed(ActionEvent event)
            {
       //*********Found**********
               labelT.setFont(new Font((String)faceCombo.getSelectedItem(),
                  Font.PLAIN, DEFAULT_SIZE));
            }
         });
      JPanel comboPanel = new JPanel();
      comboPanel.add(faceCombo);
      contentPane.add(comboPanel, BorderLayout.SOUTH);
   }
}
 

 
  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值