`
wodexxh
  • 浏览: 3920 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

java考证大题答案

阅读更多
Ⅱ 卷

四、操作题

242.

在下图中的九个点上,空出中间的点,其余的点上任意填入数字1至8;1的位置保持不动,

然后移动其余的数字,使1到8顺时针从小到大排列。移动的规则是:只能将数字沿线移向

空白的点。请将制作好的源文件保存为“t2.java”。

要求:

(1)分析问题,并描述你的算法设计思想。

(2)编程显示数字移动过程。

方法:首先找到1的位置;假定在A处。

如果1的下一个(B)是2,就找3;否则,

从1的下一个开始,往下找到2,假定位置在C上。

C的2到空位,C的前一个到C,......,B到B的下一个,最后,2到B,2排好。以些类推再排3,4......

关键问题在于,从1往下依次找2,3......移动时,却是反向。于是将每个数字存储于双向循环链表的

结点中。正向查找,反向移动。

public class GuardQueue{

public static void main(String[] args){

  SortedCircute sc=new SortedCircute(new int[]{8,5,2,4,7,3,1,6});

  int[] result=sc.sort();

  for(int i=0;i<result.length;i++){

   System.out.print(result[i]);

  }

  System.out.println();

}

}

class SortedCircute{

private Element head;

private int count;

  public SortedCircute(int[] values){

   count=values.length;

   Element previous,next=null;

   head=previous=new Element(values[0]);

   for(int i=1;i<count;i++){

    next=new Element(values[i]);

    previous.next=next;

    next.previous=previous;

    previous=next;

   }

   next.next=head;

   head.previous=next;

   Element e=head;

  }

  public int[] sort(){

   int maxSteps=count*(count+1)/2,index=0;

   int[] steps=new int[maxSteps];

   Element start=head;

   while(start.value!=1){

    start=start.next;

   }

   Element center=new Element(0),temp;

   for(int i=1;i<count;i++){

    if(start.next.value!=i+1){

    for(temp=start.next.next;temp.value!=i+1;temp=temp.next);

    center.previous=temp;

    start.next.previous=center;

    temp=center;

    do{

     temp.value=temp.previous.value;

     steps[index++]=temp.value;

     temp=temp.previous;

    }while(temp!=center);

    start.next.previous=start;

    }

    start=start.next;

   }

   int[] result=new int[index];

   System.arraycopy(steps,0,result,0,index);

   return result;

  }

public String toString(){

  String result=String.valueOf(head.value);

  Element e=head.next;

  for(int i=1;i<count;i++){

   result+="-"+String.valueOf(e.value);

  }

  return result;

}

class Element{

  Element next,previous;

  int value;

   public Element(int value){

    this.value=value;

   }

}

}



243.

编写一个Java应用程序,对于给定的一个字符串的集合,格式如:{aaa bbb ccc}, {bbb

ddd},{eee fff},{ggg},{ddd hhh} 要求将其中交集不为空的集合合并,要求合并完成后

的集合之间无交集,例如上例应输出:{aaa bbb ccc ddd hhh},{eee fff}, {ggg} 请将制作

好的源文件保存为“t1.java”。

(1)分析问题,描述你解决这个问题的思路、处理流程,以及算法复杂度。

(2)编程实现题目要求的集合合并。

(3)描述可能的改进(改进的方向如效果,算法复杂度,性能等等)。

public class Interest2{



static ArrayList<StringSet> listSup = new ArrayList<StringSet>();

public void init (String... str) {

  listSup.add(new StringSet(str));

}

public static void main(String args[]) {

  Interest2 t = new Interest2();

  //初始化

  t.init("aaa","bbb","ccc");

  t.init("eee","fff");

  t.init("ggg");

  t.init("ddd","hhh");

  t.init("bbb","ddd");

 

  //把交集不为空的集合合并

  boolean flag = false;//标记是否有合并

  for(int i = 0; i < listSup.size() - 1; i++) {

  

   for (int j = i + 1; j < listSup.size(); j++) {

    if (listSup.get(i).comp(listSup.get(j))) {

     listSup.get(i).combine(listSup.get(j));//合并到get(i)中

     listSup.remove(j);

     flag = true;

    }

   }

   if (flag) {//有合并下一次要从listSup的第一个元素开始从新比较

    i = -1;

    flag = false;

   }

  }

 

  //输出结果

  Iterator<StringSet> it = listSup.iterator();

  it.hasNext();

  while (true) {

   System.out.print(it.next());

   if (it.hasNext())

    System.out.print(",");

   else

    break;

  }

}

}

class StringSet {

ArrayList<String> listString = new ArrayList<String>();

static String theSameString = "";

//提供数组参数的构造器

public StringSet(String[] strs) {

  for (int i = 0; i < strs.length; i++) {

   listString.add(strs[i]);

  }

}



//比较两个StringSet中是否有相同的元素,有还回true

public boolean comp (StringSet strSet) {

  for (int j = 0; j < this.listString.size(); j++) {

   for (int i = 0; i < strSet.listString.size(); i++) {

    if (this.listString.get(j).equals(strSet.listString.get(i))) {

     theSameString = this.listString.get(j);

     return true;

    }

   }

  }

  return false;

}



//结合两个StringSet,不能含相同的元素

public void combine (StringSet strSet) {

  this.listString.addAll(strSet.listString);

  while (this.listString.contains(StringSet.theSameString)) {//以防有多个相同的

   this.listString.remove(StringSet.theSameString);

  }

  this.listString.add(StringSet.theSameString);

}





//打印StringSet对象

public String toString () {

  Collections.sort(this.listString);//对list中的元素排序

  Iterator<String> it = this.listString.iterator();

  String str = "";

  str += "{ ";

  while (it.hasNext()) {

   str += it.next() + " ";

  }

  str += "}";

  return str;

}

}



244.

撰写一个 myString class,其中包含一个String对象,可于构造函数中通过引数来设定初值。

加入toString()和concatenate()。后者会将String对象附加于你的内部字符串尾端。请为

myString()实现clone()。撰写两个static函数,令它们都接收myString reference x引数并调

用x.concatenate(“test”)。但第二个函数会先调用clone()。请测试这两个函数并展示其不同

结果。

public class MyString implements Cloneable

{

    String sourceString;

   

    //带参数的构造函数

    public MyString(String str)

    {

        //在构造函数中通过引用数来设定初值

        this.sourceString = str;

    }

   

    /**

    * 重写toString方法

    */

    public String toString()

    {

        StringBuilder sb = new StringBuilder();

        sb.append(sourceString);

        sb.append(":");

        return sb.toString();

    }

    /**

    * 实现讲传入参数连接到你的字符串尾端

    *

    * @param str

    *            传入参数

    * @return 链接好的字符串

    */

    public String concatenate(String str)

    {

        return sourceString.concat(str);

    }

   

    /**

    * 克隆实现

    */

    public Object clone() throws CloneNotSupportedException

    {

        return super.clone();

    }

    /**

    * 克隆前

    */

    public static void cloneBegin(String str)

    {

        MyString testString = new MyString(" Clone begin ");

        String result = testString.concatenate(str);

        System.out.println(testString.toString() + result);

    }

    /**

    * 克隆后

    */

    public static void cloneAfter(String str) throws CloneNotSupportedException

    {

        MyString testString = new MyString(" Clone begin ");

        MyString testStringClone = (MyString)testString.clone();

        String result = testStringClone.concatenate(str);

        System.out.println(testStringClone.toString()+result);

    }

    /**

    * @param args

    */

    public static void main(String[] args)

    {

        cloneBegin("test");

        try

        {

            cloneAfter("testClone");

        } catch (CloneNotSupportedException e)

        {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }

}

245.

为Thread撰写两个子类,其中一个的run()在启动后取得第二个Thread object reference,然

后调用wait()。另一个子类的run()在过了数秒之后调用notifyAll(),唤醒第一个线程,使第

一个线程可以印出消息。

MasterThread.java

public class MasterThread extends Thread {

public static void main(String[] args) {

  MasterThread mt = new MasterThread();

  mt.start();

}

public void run() {

  SlaverThread st = new SlaverThread(this);

  st.start();

  synchronized (this) {

   try {

    this.wait();

   } catch (InterruptedException e) {

    e.printStackTrace();

   }

  }

  System.out.println("MasterThread say hello!");

}

}



SlaverThread.java

public class SlaverThread extends Thread {

private Thread mt = null;



public SlaverThread(Thread mt) {

  this.mt = mt;

}

public void run() {

  try {

   System.out.println("SlaverThread started..");

   sleep(3000);

   System.out.println("3 second past");

  } catch (InterruptedException e) {

   e.printStackTrace();

  }

  System.out.println("notify MasterThread");

  synchronized (mt) {

   mt.notifyAll();

  } 

}

}



246.

编写一个简单的Web程序,根据当前时间的不同,在JSP页面上显示“上午”、“下午”。

只要在jsp页面中假如如下代码就行

<%

   if(new Date().getHours()>=0 && new Date().getHours()<=12){//看看当前时间是在0点到中午12点之间

%>

        上午好

<%

   }

   else{

%>

       下午好

<%

}

%>



247.

编写一个简单的Web程序,根据表彰中的用户名,让合法的用户登入主页面,使用session

对象将用户名显示在主页面中,不合法的用户将回发无效页面。

login.jsp

<%@ page language="java"  pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>Login page</title>

  </head>

  <body>

    <div>

     <form action="login.servlet" method="post">

      <fieldset style="width:50px;">

       username:<input type="text" name="name" /><br>

       password:<input type="password" name="password" />

       <input type="submit" value="submit" />

      </fieldset>

    

     </form>

    </div>

  </body>

</html>

main.jsp

<%@ page language="java"  pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head></head>

 

  <body>

    <div>Welcome:<%=session.getAttribute("name")%></div>

  </body>

</html>

LoginServlet

package test;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class LoginServlet extends HttpServlet {

public LoginServlet() {

  super();

}

public void destroy() {

  super.destroy(); 

}

public void doGet(HttpServletRequest request, HttpServletResponse response)

   throws ServletException, IOException {

  doPost(request,response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

   throws ServletException, IOException {

  String name=request.getParameter("name");

  String password=request.getParameter("password");

  if(null!=name&&"admin".equals(name)&&null!=password&&"admin".equals(password)){

   request.getSession().setAttribute("name", name);

   request.getRequestDispatcher("main.jsp").forward(request, response);

  }

  else{

   response.sendRedirect("login.jsp");

  }

}

public void init() throws ServletException {}

}

web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5"

xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

  <servlet>

    <servlet-name>LoginServlet</servlet-name>

    <servlet-class>test.LoginServlet</servlet-class>

  </servlet>

  <servlet-mapping>

    <servlet-name>LoginServlet</servlet-name>

    <url-pattern>login.servlet</url-pattern>

  </servlet-mapping>

  <welcome-file-list>

    <welcome-file>login.jsp</welcome-file>

  </welcome-file-list>

</web-app>



248.

使用JSP+JavaBean的模式开发一个Web程序,在JSP页面中实例化一个JavaBean,然后

再把数据显示在页面中。

package mysql;

import java.sql.*;

public class Test{

   private String user = "root";

   private String pass = "soft5";

   private String url = "";

   private Connection con = null;

   private Statement stmt = null;

   private ResultSet rs = null;

   public Test(){}

  

   public void setUser (String user){

       this.user = user;

    }

   public void setPass (String pass){

      this.pass = pass;

   }

   public void BulidCon(){

   try{

       Class.forName("com.mysql.jdbc.Driver").newInstance();

       url ="jdbc:mysql://localhost:3306/bookshop?useUnicode=true&characterEncoding=UTF-8";

       con= DriverManager.getConnection(url,user,pass);

       stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

     }catch (Exception e){

System.out.println(e.getMessage());

}

   }

    public ResultSet selectLog(String sql){

    try{

         BulidCon();

         rs = stmt.executeQuery(sql);

       }catch(Exception e){

         System.out.println(e.getMessage());

       }

       return rs;

    }

    public void updateLog(String sql){

    try{

        BulidCon();

        stmt.executeUpdate(sql);

      }catch (Exception e){

System.out.println(e.getMessage());

      }

    }

    public void close(){

    try{

        con.close();

        stmt.close();

      }catch (SQLException e){

System.out.println(e.getMessage());

      }

    }

}



数据插入

<%@ page contentType="text/html;charset=GB2312" %>

<%@ page import="java.sql.*;"%>

<jsp:useBean id="ss" class="mysql.Test" scope="page"/>

<html>

<body>

<%   

  

      String sql="insert into books (id, bookName) values ('id','book')";

      ss.updateLog(sql);

%>

</body>

</html>

数据查询

<%@ page contentType="text/html;charset=GB2312" %>

<%@ page import="java.sql.*;"%>

<jsp:useBean id="ss" class="mysql.text" scope="page"/>

<html>

<body>

<%   

      ResultSet rs = null;

      rs = ss.selectLog("select * from books");

      while(rs.next()){

      String bookId = rs.getString("ID");

      String bookName = rs.getString("bookName");

 

      out.print(bookId);

      out.print(bookName);

      }

     

%>

</body>

</html>



249.

使用JSP+Servlet+JavaBean的模式开发一个Web程序,将表单提交的数据显示在下一页面

中。

package test;

public class UserInfo {

private String name;

private String password;

private String gender;



public UserInfo(){}



public UserInfo(String name,String password,String gender){

  this.name=name;

  this.password=password;

  this.gender=gender;

}



public String getName() {

  return name;

}

public void setName(String name) {

  this.name = name;

}

public String getPassword() {

  return password;

}

public void setPassword(String password) {

  this.password = password;

}

public String getGender() {

  return gender;

}

public void setGender(String gender) {

  this.gender = gender;

}

}

InfoServlet

package test;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class InfoServlet extends HttpServlet {

public InfoServlet() {

  super();

}

public void destroy() {

  super.destroy(); 

}

public void doGet(HttpServletRequest request, HttpServletResponse response)

   throws ServletException, IOException {

  doPost(request,response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

   throws ServletException, IOException {

  String name=request.getParameter("name");

  String password=request.getParameter("password");

  String gender=request.getParameter("gender");

  UserInfo user=new UserInfo();

  user.setName(name);

  user.setPassword(password);

  user.setGender(gender);

  request.setAttribute("user",user);

  request.getRequestDispatcher("main.jsp").forward(request, response);

}

public void init() throws ServletException {}

}

info.jsp

<%@ page language="java" import="test.UserInfo" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head></head>

 

  <body>

    <div><%UserInfo user=(UserInfo)request.getAttribute("user");%>

     Username:<%=user.getName()%><br/>

     Password:<%=user.getPassword()%><br/>

     Gender:<%=user.getGender()%>

    </div>

  </body>

</html>



250.

编写程序ProductFrame.java,使用Web组件来创建用户界面,将用户输入的数据插入到表

Product中。

import java.awt.Container;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextArea;

public class ProductFrame extends JFrame implements ActionListener{ JButton button;

JTextArea jtx,jtx2;

Container c;

JPanel p;

public ProductFrame(){

c=this.getContentPane();

p= new JPanel();

jtx = new JTextArea(12,12);

jtx2 = new JTextArea(12,12);

button = new JButton("确定");

button.addActionListener(this);

p.add(jtx); p.add(jtx2);

p.add(button);

this.add(p);

this.setSize(500, 400);

this.setVisible(true); }

public void actionPerformed(ActionEvent e)

{ if(e.getSource() == button){

jtx2.setText(jtx.getText()); jtx.setText("");

}

}

public static void main(String args[]){

ProductFrame m =new ProductFrame();

}





251.

使用自定义标签实现加法和减法的运算。

package test;

public class Calculate {

public static String add(String a,String b){

  String cc = "";

  try{

   int c = Integer.parseInt(a)+Integer.parseInt(b);

   cc=""+c;

  }catch(Exception e){

   e.printStackTrace();

  }

  return cc;

}

}

web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4"

xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

  <jsp-config>

   <taglib>

    <taglib-uri>/ites</taglib-uri>

    <taglib-location>/WEB-INF/tag/one.tld</taglib-location>

   </taglib>

  </jsp-config>

</web-app>

testTag.tld

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE taglib

  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"

  "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">

<taglib>



<description>自定义标签</description>

    <tlib-version>1.0</tlib-version>

    <short-name>iter</short-name>

<function>

      <name>add</name>

      <function-class>com.Calcutate</function-class>

      <function-signature>java.lang.String add(java.lang.String,java.lang.String)</function-signature>

     </function>



</taglib>

<%@ page language="java" contentType="text/html; charset=GBK"%>

<%@ taglib uri="/ites"  prefix="i"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">   

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

  </head>

  <body>

   

     ${i:add('44','9')};

   

  </body>

</html>







252.

使用自定义标签实现两个数的乘积的运算。

import java.awt.*;

import java.awt.event.*;

class ComputerFrame extends Frame implements ActionListener

{ TextField textOne,textTwo,textResult;

Button getProblem,giveAnwser;

Label operatorLabel,message;

Teacher teacher;

ComputerFrame(String s)

{ super(s);

teacher=new Teacher();

setLayout(new FlowLayout());

textOne=new TextField(10); //创建textOne,其可见字符长是10

textTwo=new TextField(10); //创建textTwo,其可见字符长是10

textResult=new TextField(10); //创建textResult,其可见字符长是10

operatorLabel=new Label("+");

message=new Label("你还没有回答呢");

getProblem=new Button("获取题目");

giveAnwser=new Button("确认答案");

add(getProblem);

add(textOne);

add(operatorLabel);

add(textTwo);

add(new Label("="));

add(textResult);

add(giveAnwser);

add(message);

textResult.requestFocus();

textOne.setEditable(false);

textTwo.setEditable(false);

getProblem.addActionListener(this);//将当前窗口注册为getProblem的ActionEvent事件监视器

giveAnwser.addActionListener(this);//将当前窗口注册为giveAnwser的ActionEvent事件监视器

textResult.addActionListener(this);//将当前窗口注册为textResult的ActionEvent事件监视器

setBounds(100,100,450,100);

setVisible(true);

// validate();

addWindowListener(new WindowAdapter()

{ public void windowClosing(WindowEvent e)

{ System.exit(0);

}

}

);

}

public void actionPerformed(ActionEvent e)

{ if(e.getSource() == getProblem) //判断事件源是否是getProblem

{ int number1=teacher.giveNumberOne(100);

int number2=teacher.giveNumberTwo(100);

String operator=teacher.giveOperator();

textOne.setText(""+number1);

textTwo.setText(""+number2);

operatorLabel.setText(operator);

message.setText("请回答");

textResult.setText(null);

}

if(e.getSource() == giveAnwser) //判断事件源是否是giveAnwser

{ String answer=textResult.getText();

try{

int result=Integer.parseInt(answer);

if(teacher.getRight(result)==true)

{ message.setText("你回答正确");

}

else

{ message.setText("你回答错误");

}

}

catch(NumberFormatException ex)

{ message.setText("请输入数字字符");

}

}

textResult.requestFocus();

// validate();

}

}

public class MainClass

{ public static void main(String args[])

{ ComputerFrame frame;

frame=new ComputerFrame("算术测试");//创建窗口,其标题为:算术测试



253.

从键盘上输入10个整数,并放入一个一维数组中,然后将其前5个元素与后5个元素对换,

即:第1个元素与第10个元素互换,第2个元素与第9个元素互换,……,第5个元素与

第6个元素互换。分别输出数组原来各元素的值和对换后各元素的值。

package Test;

import java.util.Scanner;

public class test {

public static void main(String[] args) {

  Scanner sca = new Scanner(System.in);

  int[] ints = new int[10];

  System.out.println("请输入10个数字");

  for (int i = 0; i < 10; i++) {

   ints[i] = sca.nextInt();

  }

  int temp;

  for (int i = 0; i < 5; i++) {

   temp = ints[i];

   ints[i] = ints[9 - i];

   ints[9 - i] = temp;

  }

  for (int i = 0; i < 10; i++) {

   System.out.println(ints[i]);

  }

}

}



254.

编写一个程序,用一个线程显示时间,一个线程来计算(如判断一个大数是否是质数),当

质数计算完毕后,停止时间的显示。

package Test;

public class test {

public static void main(String[] args) {

  ThreadA thr1 = new ThreadA(1234567841);

  ThreadB thr2 = new ThreadB(thr1);

  thr1.start();

  thr2.start();

}

}

class ThreadA extends Thread {

private int number;

public ThreadA(int number) {

  this.number = number;

}

public void run() {

  if (number < 2)

   System.out.println(number + "不是素数");

  for (int i = 2; i * i <= number; i++) {

   if (number % i == 0) {

    System.out.println(number + "不是素数");

    return;

   }

  }

  System.out.println(number + "是素数");

}

}

class ThreadB extends Thread {

private Thread thread;

private long time;

public ThreadB(Thread thread) {

  this.thread = thread;

  time = System.currentTimeMillis();

}

public void run() {

  while (!thread.isAlive()) {

   try {

    Thread.sleep(50);

   } catch (InterruptedException e) {

   }

  }

  System.out.println(System.currentTimeMillis() - time+"毫秒");

}

}



255.

用JavaApplication编写一个模拟的文本编辑器。给文本编辑器增设字体字号的功能。

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class Notepad extends JFrame{

 

   private String fontNames[] = { "宋体", "华文行楷", "隶书" };       

   private String[] sizeString = new String[30];    

   int[] size = new int[30];         

   private static JTextArea displayText;      

   private int style;         

   private JScrollPane scroll;       

   private JComboBox styleBox;  

   private JComboBox fontBox;

   private JComboBox sizeBox;

   private JPanel toolPanel;      

   private int rowNumber = 0;      



   public Notepad(){

      super( "记事本" );        //标题设置                   

      for(int i = 0 ; i<size.length;i++){

       sizeString[i] = "" + (i+5) * 2;

       size[i] = (i+5)*2;

     }

     

     Container container = this.getContentPane();

     container.setLayout(new BorderLayout() ); 

     toolPanel = new JPanel();

     JLabel label1 = new JLabel("字体名称");

     toolPanel.add(label1);

     fontBox = new JComboBox(fontNames);

     fontBox.addItemListener(           //事件处理

      new ItemListener(){

        public void itemStateChanged(ItemEvent event){

          if( event.getStateChange() == ItemEvent.SELECTED){

             displayText.setFont(

               new Font( fontNames[fontBox.getSelectedIndex()],

                displayText.getFont().getStyle(),

                displayText.getFont().getSize() ) );

          }                   //字体设置

        }

       }

     );

     toolPanel.add(fontBox);

     JLabel label2 = new JLabel("字体风格");

     toolPanel.add(label2);

     String style_name[] = {"常规","倾斜","粗体","倾斜加粗体"};//字体风格设置

     styleBox = new JComboBox(style_name);

     styleBox.addItemListener(   //事件处理

       new ItemListener(){

         public void itemStateChanged(ItemEvent event){

           if( event.getStateChange() == ItemEvent.SELECTED){

             if(styleBox.getSelectedIndex()==0) style = Font.PLAIN;

             if(styleBox.getSelectedIndex()==1) style = Font.ITALIC;

             if(styleBox.getSelectedIndex()==2) style = Font.BOLD;

             if(styleBox.getSelectedIndex()==3) style = Font.ITALIC+Font.BOLD;

             displayText.setFont( new Font( displayText.getFont().getName(),

                  style, displayText.getFont().getSize() ) );

           }

         }

       }

     );

    

     toolPanel.add( styleBox );   

     JLabel label3 = new JLabel("字号");

     toolPanel.add(label3);

     sizeBox = new JComboBox(sizeString);

     sizeBox.addItemListener(

       new ItemListener(){

         public void itemStateChanged(ItemEvent event){

           if( event.getStateChange() == ItemEvent.SELECTED){

            displayText.setFont( new Font( displayText.getFont().getName(),

                 displayText.getFont().getStyle(), size[sizeBox.getSelectedIndex()] ) );

           }

         }

       }

     );          

     toolPanel.add(sizeBox);

     container.add( toolPanel, BorderLayout.NORTH );

     JMenu fileMenu = new JMenu( "文件(F)" );

     fileMenu.setMnemonic( 'F' );

                

     displayText = new JTextArea();

     displayText.setFont( new Font( "Serif", Font.PLAIN, 24) );

     scroll = new JScrollPane( displayText,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,

          JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS );

     container.add( scroll, BorderLayout.CENTER );

     displayText.addKeyListener( 

       new KeyListener(){

         public void keyPressed( KeyEvent event ){

           rowNumber = displayText.getLineCount();

           setTitle("总共" + rowNumber +  "行");

         }

         public void keyReleased( KeyEvent event ){}

         public void keyTyped( KeyEvent event ){ }

       }

   );

     setSize( 700, 500 );

     setVisible( true );

  }

  

  public static void main( String args[] ){

     Notepad application = new Notepad();       

     application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );//默认窗口关闭方式

  }

}






分享到:
评论

相关推荐

    Java考证历年试题以及参考答案

    本资源包“Java考证历年试题以及参考答案”汇聚了过往的考试题目和官方给出的答案,为准备参加Java相关资格认证考试的学习者提供了宝贵的复习资料。 首先,Java考证涵盖了多个层次,包括Oracle Certified Associate...

    Java考证历年试题及参考答案

    "Java考证历年试题及参考答案"这个资源对于准备参加Java认证考试的学习者来说无疑是一份宝贵的资料。下面,我们将深入探讨Java考证的相关知识点,以及如何有效地利用这些试题和答案进行复习。 1. **Java基础知识** ...

    基于java开发的考证通题库微信小程序

    【基于Java开发的考证通题库微信小程序】是一款利用Java技术构建的教育应用,专为备考各类证书考试的用户设计。这款小程序集成了丰富的题库资源,覆盖多种考试类别,旨在帮助用户通过在线学习和练习,提高考试通过率...

    往年程序员考证试题答案(2008-2010)

    这些题目来源于2008年至2010年间针对程序员考证的考试,主要涵盖了C语言的相关知识。这些试题包含了选择题和程序填空题,分别对应上午和下午的考试部分。通过对这些答案的分析,我们可以提炼出以下几个重要的知识点...

    程序员考试历年试题及答案

    2. 编程语言:根据不同的考试,可能会涵盖C、C++、Java、Python等主流编程语言的语法、数据类型、控制结构、函数、类和对象等概念。 3. 数据结构与算法:这是程序员能力的重要衡量标准,可能包括数组、链表、栈、...

    ACCP5.0 Y2考证复习题(笔试+机试、附答案)

    这份"ACCP5.0 Y2考证复习题(笔试+机试、附答案)"是为帮助学员准备这个阶段的认证考试而准备的资料,包括了笔试和机试两部分的练习题目以及相应的参考答案。 笔试部分通常涉及理论知识的检验,可能涵盖以下几个...

    C#程序员考试答案

    1. **C#基础语法**:C#语法与C++和Java类似,包括变量声明、数据类型、控制结构(如if语句、for循环、while循环)、函数定义等。掌握这些基础是学习C#的第一步。 2. **类与对象**:C#是面向对象的语言,因此理解类...

    Dreamweaver考证10套试题

    因此,此题的答案是 A(正确)。 **7. 表单应用案例** - **知识点**:Dreamweaver 中表单的应用场景。 - **解析**:表单常用于用户注册(A)、网上订购(C)、用户登录(D)等场景。但不适用于直接浏览数据库...

    中国移动中级应用开发者(android)试题及答案

    正确答案是 C. `res/raw`。 - **解析**:`res/raw` 目录用于存放原始资源文件,如二进制文件。而其他选项,如 A. `res/layout` 是用于存放布局文件;B. `res/menu` 用于存放菜单资源文件;D. `res/values` 用于存放...

    Java OCJP(原SCJP)真题题目(答案在我上传的另一资源)

    Java OCJP(原SCJP)真题,有140多道,是我去参加认证培训的时候的资料。这份没有答案,很适合用来测试自己会多少。得出自己所处的水平。如果你全部弄懂了,也就差不多可以去参加考试了。 答案解析在我上传的另外一...

    (Sun Certified Java Programmer)SCJP 考试题及答案(最全)

    ### SCJP 考试题及答案解析 #### 题目一:对象转换与类型检查 **题目描述:** 给出以下代码: ```java public class Test { public static void main(String args[]) { class Foo { public int i = 3; } ...

    Oracle Certified Associate Java SE 8 Programmer I - Study Guide

    在标签“JAVA考证、OCA、OCJP”中,可以看出,这是一份专为准备Java考证的考生而设计的学习资源。OCA(Oracle Certified Associate)和OCJP(Oracle Certified Professional Java Programmer)都是Oracle官方对Java...

    2021上半年软件设计师真题及答案解析.rar

    编程题可能涉及到C++、Java、Python等主流编程语言,考察语法、逻辑和调试技能;分析题则可能给出一个具体的问题场景或需求,要求考生设计出合理的软件解决方案。 在备考过程中,考生可以通过做这些真题来检测自己...

    英语六级历年真题汇总

    - 推荐在“普通”视图下做题,以减少页面变化对阅读的影响。 - 可通过Word的拆分条功能将窗口分为上下两部分,便于对照阅读和答题。 - 如遇到技术问题,可参考“word 使用技巧”专帖或向论坛提问。 3. 文档特点...

    鲲鹏应用者开发HCIA题库及答案.zip

    该认证考试共包含六套模拟试题,每套约60题,总计约360题。题目涵盖鲲鹏平台基础知识、开发实践、部署运维等多个方面。考生需对上述知识点有深入理解和实践能力,才能顺利通过考试。 通过《鲲鹏应用者开发HCIA题库...

    SCJP(OCJP)考证

    ### SCJP(OCJP)考证知识点解析 #### 一、Java标识符规则 **知识点概述:** 本题涉及Java中的标识符命名规则。在Java中,变量名必须遵循一定的规则和约定。 **详细解析:** - **选项A**: `String#name="JaneDoe";`...

    程序员 考试大纲 07 08 09 真题试卷(含有答案)

    在程序员的考证道路上,了解并掌握考试大纲是至关重要的第一步。07、08、09年的程序员真题试卷不仅提供了实战演练的机会,更蕴含了丰富的知识点,帮助考生深入理解编程语言、数据结构、算法设计、软件工程等核心领域...

    ava语言案例教程(第2版).

    《Java语言案例教程》(第2版)是作者多年从事教学和研究的心得之作,本书则是根据原教材精心编写的习题集。本书的习题类型丰富,分为基础练习和程序设计题。基础题中还细分为判断题、选择题、填空题和简述题。为了...

    2011最新SCJP题库

    - **SCJP** (Sun Certified Java Programmer) 是 Sun Microsystems 提供的一项认证,旨在测试和验证考生对于 Java 编程语言的理解和掌握程度。 - 2011 年的新题库反映了该时期 Java 技术的发展水平,对于备考 SCJP ...

Global site tag (gtag.js) - Google Analytics