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 );//默认窗口关闭方式

}

}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性: 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问。 2、String是最基本的数据类型吗? 基本数据类型包括byte、int、char、long、float、double、boolean和short。 java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 3、int 和 Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型封装类 booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble
Java 2实用教程(第三版)实验指导与习解答 清华大学出版社 (编著 耿祥义 张跃平) 实验模版代码 建议使用文档结构图 (选择Word菜单→视图→文档结构图) 上机实践1 初识Java 4 实验1 一个简单的应用程序 4 实验2 一个简单的Java Applet程序 4 实验3 联合编译 5 上机实践2 基本数据类型与控制语句 6 实验1 输出希腊字母表 6 实验2 回文数 6 实验3 猜数字游戏 8 上机实践3 类与对象 9 实验1 三角形、梯形和圆形的类封装 9 实验2 实例成员与类成员 12 实验3 使用package语句与import语句 13 上机实践4 继承与接口 15 实验1 继承 15 实验2 上转型对象 17 实验3 接口回调 18 上机实践5 字符串、时间与数字 19 实验1 String类的常用方法 19 实验2 比较日期的大小 21 实验3 处理大整数 22 上机实践6 组件及事件处理 23 实验1 算术测试 23 实验2 信号灯 25 实验3 布局与日历 28 上机实践7 组件及事件处理2 31 实验1 方程求根 31 实验2 字体对话框 34 实验3 英语单词拼写训练 37 上机实践8 多线程 41 实验1 汉字打字练习 41 实验2 旋转的行星 43 实验3 双线程接力 47 上机实践9 输入输出流 50 实验1 学读汉字 50 实验2 统计英文单词字 53 实验2 读取Zip文件 56 上机实践10 Java 中的网络编程 57 实验1 读取服务器端文件 57 实验2 使用套接字读取服务器端对象 59 实验3 基于UDP的图像传输 62 上机实践11 数据结构 66 实验1 扫雷小游戏 66 实验2 排序与查找 70 实验3 使用TreeSet排序 72 上机实践12 java Swing 74 实验1 JLayeredPane分层窗格 74 实验2 使用表格显示日历 75 实验3 多文档界面(MDI) 78 上机实践1 初识Java 实验1 一个简单的应用程序 2.模板代码 Hello.java package 实验一; public class Hello { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("你好,很高兴学习Java"); //命令行窗口输出"你好,很高兴学习Java" A a=new A(); a.fA(); } } class A { void fA() {System.out.println("we are student"); } } 实验2 一个简单的Java Applet程序 2.模板代码 FirstApplet.java import java.applet.*; import java.awt.*; public class FirstApplet extends Applet { public void paint(Graphics g) { g.setColor(Color.blue); g.drawString("这是一个Java Applet 程序",10,30);//在Java Applet中绘制一行文字:“这是一个Java Applet 程序” g.setColor(Color.red); g.setFont(new Font("宋体",Font.BOLD,36)); g.drawString("我改变了字体",20,50);//在Java Applet中绘制一行文字:“我改变了字体” } }实验3 联合编译 2.模板代码 public class MainClass { public static void main (String args[ ]) { System.out.println("你好,只需编译我") ; //命令行窗口输出"你好,只需编译我" A a=new A(); a.fA(); B b=new B(); b.fB(); } } public class A { void fA() {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值