Java 编程练习题(三)
?1. 设计一GUI程序,在窗口中制作一个按钮,当将鼠标的光标移到按钮上时显示图一,按下按钮时显示图二,离开按钮时显示图三。



?
?? ?? ??
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
???
public class Eg_1{
??? public static void main(String args[]){
??????? JFrame f = new JFrame("myRollover");
??????? Container contentPane = f.getContentPane();
??????? Icon rollover = new ImageIcon(".\\1.gif"); //创建icon对像实例rollover
??????? Icon general = new ImageIcon(".\\2.gif");//创建icon对像实例 general
??????? Icon press = new ImageIcon(".\\3.gif"); //创建icon对像实例 press
??????? Icon disable = new ImageIcon(".\\4.gif");//创建icon对像实例 disable
??????? JButton b = new JButton();????????????????????? //创建按钮对像实例 b
??????? b.setRolloverEnabled(true);????????????? //设按钮b的标示具有翻滚的功能
??????? b.setIcon(general);?????? //将icon实例general加载到按钮上,按钮上就显示该图形
??????? b.setRolloverIcon(rollover);? //按钮翻滚后显示的图形是rollover
??????? b.setPressedIcon(press);????? //鼠标按下时显示press图形
??????? contentPane.add(b);?????????? //将按钮加到内容面板上
??????? f.pack();???????????????????? //显示窗口
??????? f.show();???????????????????? //显示窗口中的组件
??????? f.addWindowListener(new WindowAdapter() {//处理窗口关闭
??????????????? public void windowClosing(WindowEvent e) {
??????????????????? System.exit(0);
??????????????? }
??????????? });
???? }
}
?
?
?
?
?
2. 设计一程序,要求在图形用户界面中输入产品的说明书,输入内容有产品名称、产品规格、产品编号、产品说明。

?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
???
public class Eg_2{
??? public static void main(String args[]){??
??????? JFrame f = new JFrame("JTextArea例题");? //创建JFrame窗口容器类对象f。
??????? Container contentPane = f.getContentPane();//创建内容面板对象实例
??????? contentPane.setLayout(new BorderLayout()); //设置内容面板采用边界布局管理器
??????? JPanel p1 = new JPanel();????????????????? //创建面板容器实例。
? ??????p1.setLayout(new GridBagLayout());???????? //设置面板采用网袋布局管理器
??????? GridBagConstraints gbc = new GridBagConstraints();//创建网袋格布局对象gbc。
??????? gbc.anchor = GridBagConstraints.WEST; //确定网袋格布局管理器对象gbc的位置
??????? gbc.insets = new Insets(2,2,2,2);???????? //gbc与边界的距离(上,左,下,右)
??????? p1.setBorder(BorderFactory.createTitledBorder("建构一般的JTextArea"));
?????????????????????????????????????????????? //设置边界框和说明文字???????
??????? JLabel l1 = new JLabel("产品名称:");??? //创建4个标签实例
??????? JLabel l2 = new JLabel("产号编号:");???
??????? JLabel l3 = new JLabel("产品规格:");???????
??????? JLabel l4 = new JLabel("产品说明:");???????
??????? JTextArea t1 = new JTextArea(2,8);????? //创建4个文本域实例
??????? JTextArea t2 = new JTextArea(10,2);//书有错,请改正????????????????????
??????? JTextArea t3 = new JTextArea("TravelMate 372 系列",3,10);???????
??????? JTextArea t4 = new JTextArea("采用因特尔迅驰移动技术,因特尔@奔腾M处理器1.5GHz",5,10);?????????????? //以最合适的长度存放字符串
??????? t1.setText("宏基笔记本电脑");?? //向文本域t1写入文字数据,清除以前的内容
??????? t2.append("A19345-by3874534-34345"); //在文本域t2中已有文字后写入该字符串,
??????? t4.setLineWrap(true); /*激活自动换行功能,当文字输入长度大于文本域提供的宽
?????????????????????????? 度时,会自动换行。*/
??????? gbc.gridy=1;gbc.gridx=0;p1.add(l1,gbc);/*29-36行将4个标签和4个文本域按指定
???????????????????? 的位置加到面板容器中。*/
??????? gbc.gridx=1;p1.add(t1,gbc);
??????? gbc.gridy=2;gbc.gridx=0;p1.add(l2,gbc);?????????????????????
??????? gbc.gridx=1;p1.add(t2,gbc);
??????? gbc.gridy=3;gbc.gridx=0;p1.add(l3,gbc);
??????? gbc.gridx=1;p1.add(t3,gbc);
??????? gbc.gridy=4;gbc.gridx=0;p1.add(l4,gbc);
??????? gbc.gridx=1;p1.add(t4,gbc);???????
??????? contentPane.add(p1); //把面板容器加到内容面板里。
??????? f.pack();?????????? //使窗口可见
??????? f.show();?????????? //使窗口中的组件可见
??????? f.addWindowListener(new WindowAdapter() {
??????????????? public void windowClosing(WindowEvent e) {???????????????????
????? ??????????????System.exit(0);???????????
??????????????? }
??????????? });
???? }
}
?
?
?
?
?
3. 设计一程序,在窗口中显示一个名为JEditorPane.html文件.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
?//开始编写文本显示类,给类起一个好名字,别忘了在类名前加上public class
public class Eg_3 {
?
??? public static void main(String args[]) {?????? //在类体中写主方法main()
??????? JEditorPane editPane = null; //定义一个JEditorPane 的对象editPane,并初始化为null。
??????? //
??????? try{????????????????????
??????????? File file = new File ("d:\\w618\\index.htm");//先创建一文件类的实例。
??????????? String str = file.getAbsolutePath();/*通过文件类对象调用方法getAbsolutePath()获的
????????????????????? 文件所在的路径,并将该路径支付给字符串变量str。*/
??????????? str = "file:"+str; //给一字符串变量赋值。----书错
??????????? editPane = new JEditorPane();//创建JEditorPane类的实例。
??????????? editPane.setPage(str);
???????? }????? //由该实例对象负责将字符串显示在窗口面板上。
???????? catch(IOException ioe) {????? /*捕捉文件打不开或不存在等异常事件,然后对异
?????????????????????????? 常事件进行处理,关闭窗口。*/
??????????? ioe.printStackTrace(System.err);//打印发生异常的信息????????
??????????? System.exit(0);
???????? }
????????
??????? JFrame f = new JFrame("文本显示窗口");
??????? f.setContentPane(new JScrollPane(editPane));/* 由类对象f 调用方法
???????????????????????? setContentPane,设置窗口容器面板为滚动式面板.*/
??????? f.pack();????????? ?????//设置窗口面板的大小;
??????? f.show();?????
???? } //主方法main()结束
????
}?? //JEditPane1类结束
?
?
?
?
?
?