版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java语言程序设计
第九章课后习题答案
1.编写一个程序,该程序绘制一个5X9的网络,使用drawLine方法。
//NetWork类
importjava.awt.Graphics;
importjavax.swing.JFrame;
publicclassNetWorkextendsJFrame{
publicNetWorko{
//设置窗体大小
this.setSize<130,130>;
//设置窗体大小不可改变
this.setResizable<false>;
//设置默认关闭方式,关闭窗体的同时结束程序
this.setDefaultCloseOperation<JFrame.EXIT_ON_CLOSE>;
//将窗体显示出来
this.setVisible<true>;
)
〃横纵格之间都间隔10像素,起点在(20,40
publicvoidpaint<Graphicsg>{
〃绘制横向线
for<inti=0;i<=5;i++>{
g.drawLine<20,40+i*10,110,40+i*10>;
}
〃绘制纵向线
for<inti=0;i<=9;i++>{
g.drawLine<20+i*10,40,20+i*10,90>;
)
)
}
//test9_l类
publicclasstest9_l{
publicstaticvoidmain<String[]args>{
newNetWorko;
)
)
运行结果:
2.编写一个程序,该程序以不同的颜色随机产生三角形,每一个三角形比不同的颜色进行填充。
//Triangle类
importjava.awt.Color;
importjava.awt.Graphics;
importjava.util.Random;
importjavax.swing.JFrame;
publicclassTriangleextendsJFrame{
Randomrnd=newRandomo;
//这里定义4个三角形
int[](]x-newint[4][3];
int[][]y=newint[4][3];
int(][)color=newint[4][3];
publicTriangleo{
for<inti=0;i<4;i++>{
for<intj=0;j<3;j++>{
color[i][j]=rnd.nextlnt<255>;
x(ij[j]=rnd.nextInt<i*100-i-100>;
y[i][j]=rnd.next工nt<i*100+100>+50;//加50像素是为了避免顶到窗体上沿
}
}
〃窗体标题
this随机三角形”>;
〃窗体大小
this.setSize<500,500>;
//窗体大小不可变
this.setResizable<false>;
//关闭窗体的同时结束程序
this.setDefaultCloseOperation<JFrame.EXIT_ON_CLOSE>;
//显示窗体
this.setVisible<true>;
}
publicvoidpaint<Graphicsg>{
for<inti=0;i<4;i++>{
g.setColor<newColor<color[i][0]zcolor[i][1]/color[i][2]»;
g.fillPolygon<x[i],y[i],3>;
)
}
}
//test9_2
publicclasstest9_2{
publicstaticvoidmain<String[]args>(
newTriangleo;
)
}
运行结果:
3.编写一个Applet,该程序请求用户输入圆的半径,然后显示该圆的直径、周长和面积。
//test9_3
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.ActionEvent;
importjava,awt.event.ActionListener;
publicclasstest9_3extendsJApplet(
2/23
//声明5个标签
privateJLabeljLabe11;
privateJLabeljLabe12;
privateJLabeljLabel3;
privateJLabeljLabe14;
privateJLabeljLabel5;
//I个单行文本
privateJTextFieldtextOfRadius;
//2个按钮
privateJButtonjButtonl;
privateJButtonjButton2;
//初始化
publinvnidinito{
try(
java,awt.EventQueue.invokeAndWait<newRunnableo
publicvoidrun<>{
initCompDnents<>;
)
}>;
}catch<Exceptionex>{
ex.printStackTraceo;
)
}
privatevoidinitComponents<>{
//声明8个组件
jLabel1=newJLabeJX”输入圆的半径:",SwingConstants.CENTER>;
jLabel2=newJLabelv”圆的周长:",Swingconstants.CENT3R>;
jLabel3=newJLabeK*'",Swingconstants.CENTER>;
jLabel4=newJLabel〈”圆的面积:“,Swingconstants.CENTZR>;
jLabel5=newJLabeKnu,SwingConstants.CENTER>;
textOfRadius=newJTextFieldc"半径”;
jButtonl=newJButtone”计算”>;
jButton2=newJButtonc”退出”>;
//按钮添加监听器
jButtonl.addActionListener<newActionListenerO{
publicvoidactionPerformed<ActionEventevt>{
jButtonlActionPerformed<evt>;
)
//按钮添加监听器
jButton2.addActionListener<newActionListenerO{
publicvoidactionPerformed<ActionEventevt>{
jButton2ActionPerformed<evt>;
)
3/23
)>;
〃声明定义内容面板,并且改置其布局格式为:4行2列格子
Containerc=getContentPane<>;
c.setLayout<newGridLayout<4,2>>;
〃将8个组件加入到内容面板
c.add<jLabell>;
c.add<textOfRadius>;
c.add<jLabe12>;
c.add<jLabe13>;
c.add<jLabel4>;
c.add<jLabe!5>;
c.add<jButtonl>;
c.add<jButton2>;
)
//求周长方法
privateStringRound<doublea>{
doubleperimeter=a*2*3.14;
Strings=newString<String.valueOf<perimeter>>;
returns;
)
//求面积方法
privateStringArea<doublea>{
doublearea=a*a*3.14;
Strings=newStrinq<Strinq.valueOf<area>>;
returns;
)
//点击"计算”按钮jButton!.触发的方法
privatevoidjButtonlActionPerformed<ActionEventevt>{
//捕获单文本输入非数字的异常
try(
Strings=textOfRadius.getTextO;//获得单文本字符
doublea=Double.valueOf<s>.floatvalue。;//字符转化为双精度
jLabe13.setText<Round<a>>;〃标签内容为周长
jLabel5.seEText〈Area〈a>>;〃标笔内容为面积
}catch<NumberFormatExceptionr>{
//单文本为非数字弹出提示“输入错误”框
JOptionPane.showMessageDialog<this,”请输入数字类型","输入错误
“,JOptionPane.WARNING_MESSAGE>;
textOfRadius.setText<H,f>;
)
)
//点击"退出"按钮jButton2触发的方法
publicvoidjButton2ActionFerformed<ActionEventevt>{
System.exit<0>;
4/23
)
)
运行结果:
编译text9_3.java产生字节码文件test9_3.class,接下来需要编写一个
HTML文件text9_3.html来嵌入text9_3.class,代码如下:
<html>
<appletcode=z,test9_3.class”)
</applet>
</html>
将test9_3.html文件和test9_3.class文件放在同一个目录下,在浏览器中打开
这个test9_3.html文件,实现的效果如下:
4.编写一个Applet,向其输入五个数,然后以条形图(bargraph的形式来表示这些数。
5.编写•个绘制圆形的程序,当鼠标在绘制区域中单击时,该正方形的左上角顶点应准确的跟
随鼠标光标挪移,重绘该圆形。
//MyJFrame类
importjava.awt.Graphics;
importjava.awt.event.MouseEvent;
importjava.awt.event.MouseListener;
importjavax.swing.JFrame;
publicclassMyJFrameextendsJFrameimplementsMouseListener{
intx=50;
inty=50;
intradius=50;
publicMyJFrame<>{
this.setTit1e<"绘制圆形”>;
this.setSize<200,200>;
this.setResizable<false>;
this.setDefaultCloseOperation<JFrame.EXIT_ON_CLOSE>;
this.addMouseListener<this>;
this.setVisible<true>;
)
publicvoidpaint<Graphicsg>{
g.drawOvaKx,y,radius,radius〉;
}
publicvoidmouseClicked<MouseEvente>{
//TODOAuto-generatedmethodstub
this.x=e.getX<>;
this.y=e.getY<>;
this.repainto;
System.out.println<"x:"+e.getxo+'*\ny:"+e.getY<»;
)
publicvoidmouseEntered<MouseEvente>{
//TODOAuto-generatedmethodstub
5/23
)
publicvoidniout>eExited<MouseEveiit.e>{
//TODOAuto-generatedmethodstub
I
publicvoidmousePressed<McuseEvente>{
//TODOAuto-generatedmethodstub
}
publicvoidmouseReleased<MouseEvente>{
//TODOAuto-generatedmethodstub
)
}
//test9_5
publinnlass?{
publicstaticvoidmain<String[]args>{
newMyJFrameO;
}
}
运行结果:
6.编写一个”猜数“程序:该程序随机在1到100的范围内选择一个供用户猜测的整数,然后改
程序显示提示信息,要求用户输入一个1到100之间的整数,根据输入偏大、偏小、正确,程序
将显示不同的图标。
//GuessNumber类
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava,awt.event.ActionListener;
importjava.util.Random;
importjavax.swing.JButtor.;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
importjavax.swing.JTextField;
importjavax.swing.Swingconstants;
publicclassGuessNumberextendsJFrameimplementsActionListener{
intnumberOfRandom;//游戏程序随机数
intnumberOfUser;//玩家输入整数
JLabellabell;//标签1:”输入一个1到100之间的整数”
JLabellabe12;//标签2:“提示”
JLabellabel3;//标签3:提示的内容(偏大、偏小、正确
JButtonbuttonOfSure;//确定按钮
JButtonbuttonOfExit;//退出按钮
JTextFieldjTextField;//猜数输入单行文本框
publicvoidinito{
//窗体的定义
this.setTitlev”这是一个猜数游戏”>;
6/23
this.setSize<400,120>;
this.setResizable<false>;
this.setLayout<newGridLayout<3,2»;
this.setDefaultCloseOperation<JFrame.EXIT_ON_CLOSE>;
//随机数
Randomrandom=newRandomo;
numberOfRandom=random.nextlnt<l00>;
//各组件的定义
labell=newJLabelv”请输入一个1到100之间的整数:">;
label2=newJLabe1V"提示:",Swingconstants.CENTER>;
labe13=newJLabelv"猜猜看
buttonOfSure=newJButtonV”确定
this.getRootPaneO.setDefaultButton<buttonOfSure>;//默认用户按下回车键
触发“确定“按钮
buttonOfSure.addActionListener<this>;
buttonOfExit=newJButton<11Hi">;
buttonOfExit.addActionListener<this>;
jTextField=newJTextFieldv"输入”>;
//窗体加入各组件
this.add<labell>;
this.add<jTextField>;
this.add<label2>;
this.add<label3>;
this.add<buttonOfSure>;
this.add<buttonOfExit>;
//显示窗体
this.setVisible<true>;
System.out.println<numberOfRandom>;//偷偷看看随机数,哈哈
}
//事件处理
publicvoideventHandle<>
//捕获非整型输入异常
try(
numberOfUser=Integer.parselnt<jTextField.getTexto;//获得用户输入数
if<numberOfUser<1||numberOfUser>100>{
JOptionPane.showMessageDialog<this,”请输入1到100之间的整
数
}else{
if<numberOfUser>numberOfRandom>{
label3.setTextc”偏大
jTextField.requestFocuso;//清空文本框并使旧新狭行焦点
}
if<numberOfUser<numberOfRandom>{
label3.setTextx“偏小”>;
7/23
jTextField.requestFocusO;
}
if<numberOfUser==numberOfRandom>{
labe13.setText<"恭喜你,答对了。u>;
jTextField.requestFocuso;
}
)
}catch<NumberFormatExceptione>{
JOptionPane.showMessageDialog<this,”请输入整数","输入错误”,
JOptionPane.WARNING_MESSAGE>;
jTextField.requestFocuso;
)
)
//按钮触发选择
publicvoidactionPerformed<ActionEvente>{
if<e.getActionCommando=="确定"〉{
this.eventHandleo;
)
if<e.getActionCommando=="退出"》{
System.exit<0>;
}
)
publicstaticvoidmain<String(]args>{
nAwGupssNumbprO.init<>;
}
}
运行结果:
7.练习使用JscrollPaneo使用BorderLayout将JFrame布局分为摆布两块;左边又使用
Gridlayout,包含三个按钮,右边在儿abel里显示一幅图画,按钮控制JLabel是否显示滚动条。
//test9_7
importorderLayout;
importjava.awt.Button;
importjava.awt.Container;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.Imageicon;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
importjavax.swing.JPanel;
importjavax.swing.JScrollPane;
importjavax.swing.ScrollPaneConstants;
publicclasstest97,_extendsJFrameimplementsActionListener{
8/23
privateJPaneljPanel;//左边panel框
privateButtonbuttonl;
privateButtonbutton2;
privateButtonbutton3;
privateJScrollPanejscro工工Pane;//右边滚动框
privateJLabellabel;//滚动框中的标签
publicImagelconpicture=null;//标签中的图标
publicbooleanwhetherCroll=true;//用于切换滚动条的显示
publicvoidinito{
JFramejFrame=newJFrame<”练习使用Jscrol1Pane”>;
Containerpane=jFrame.getContentPaneo;
this.setDefaultCloseOperation<<JFrame.EXIT_ON_CLOSE>>;
//定义左边镶板JPanel框和三个按钮
jPanel=newJPanel<newGridLayout<3,1,0,30>>;
buttonl=newButton<"滚动
buttonl.addActionListener<this>;
button2=newButtonc”试试”>;
button2.addActionListener<this>;
button3=new8a1。水"退出”>;
button3.addActionListener<this>;
jPanel.add<buttonl>;
jPanel.add<button2>;
jPanel.add<button3>;
//读取图片作为图标
picture=newImageIcon<nD:/image/fuck.jpg/n>;
//将图标赋给标签工abel
label=newJLabel<picture>;
//定义滚动框,总是显示滚动条
jscrollPane=newJScrollPane<label,
ScrollPaneCanstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneCc-nstants.HORIZONTAL_SCROLLBAR_ALWAYS>;
//将摆布两边的中间容器抛却JFrame中
pane.add<jPanel,BorderLayout.WEST>;
pane.add<jscrollPane,BorderLayout.EAST>;
〃排版显示
jFrame.packo;
jFrame.setVisible<true>;
)
@Override
publicvoidactionPerformed<ActionEvente>{
//TODOAuto-generatedmethodstub
if<e.getActionCommandO=="滚动"》{
if<whetherCroll>{
jscrollPane.setVerticalScrollBarPolicy<JScrollPane.VERTICAL_SCROLLBAR
9/23
_NEVER>;//垂直不显示
jscrollPane.setHorizontalScrollBarPolicy<JScrollPane.HORIZONTAL_SCROL
LBAR_NEVER>;//水平不显示
whetherCroll=false;
}else{
jscrollPane.setVerticalScrollBarPolicy<JScrollPane.VERTICAL_SCROLLBAR
_ALWAYS>;//垂直显示
jscrollPane.setHorizontalScrollBarPolicy<JScrollPane.HORIZONTAL_SCROL
LBAR_ALWAYS>;//水平显示
whetherCroll=true;
}
}
if<e.getActionCommandO—"试试”〉{
JOptionPane.showMessageDialog<this,
"oh,,,Fuckyourteacher?yeal......good!*'>;
)
if<e.getActionCommandO=="退出"》{
System.exit<0>;
}
)
publicstaticvoidmain<String(]args>{
newtest9_7<>.inito;
}
)
运行结果:
显示滚动条
点击〃滚动〃按钮后,没显示滚动条
8.练习使用JListo建立两个JList,双击其中任何一个中的某一项,此项就会跑到此外一个儿ist
中。
//test9_8
importjava.awt.Container;
importjava.awt.GridLayout;
importjava.awt.event.MouseEvent;
importjava.awt.event.MouseListener;
importjavax.swing.DefaultListModel;
importjavax.swing.JFrame;
importjavax.swing.JList;
publicclasstest98.extendsJFrameimplementsMouseListener{
publicJFramejFrame;
publicJListjListl;
publicJListjList2;
publicDefaultListModellistModell;
publicDefaultListModellistModel2;
publicvoidinito{
10/23
JFramejFrame=newJFrame〈”练习使用List”;
Containerpane-jFrame.getContentPaneo;
pane.setLayout<newGridLayout<l,2>>;
jFrame.setDefaultCloseOperation<JFrame.EXIT_ON_CLOSE
listModell=newDefaultListModelo;
listModell.addElement<nFirst">;
listModell.addElement<,,Second">;
listModell.addElement<,,Third,*>;
listModel2=newDefaultListModelo;
listModel2.addElement<,,one,*>;
listModel2.addElement<*,twou>;
listModel2.addElement<"three">;
jListl=newJList<listMode11>;
jList2=newJList<listModel2>;
jListl.addMouseListener<this>;
jList2.addMouseListener<this>;
pane.add<jListl>;
pane.add<jList2>;
jFrame.packo;
jFrame.setVisible<true>;
}
@Override
publicvoidmouseClicked<McuseEvente>{
//TODOAuto-generatedmethodstub
if<e.getSourceo==jListl>{
intindex=jListl.locationToIndex<e.getPoint<>>;
Objecto=jLiszl.getModelo.getElementAt<index>;
listMode!2.addElement<o>;
)
if<e.getSource<>==jList2>\
intindex=jList2.locationToIndex<e.getPoint<>>;
Objecto=jLis二2.getModelo.getElementAt<index>;
listModell.addElement<o>;
)
)
@Override
publicvoidmousePressed<McuseEvente>{
//TODOAuto-generatedmethodstub
}
0Override
publicvoidmouseReleased<McuseEvente>{
//TODOAuto-generatedmethodstub
}
@Override
11/23
publicvoidmouseEntered<McuseEvente>{
//TODOAuto-generatedmethodstub
@Override
publicvoidmouseExited<MouseEvente>{
//TODOAuto-generatedmethodstub
)
publicstaticvoidmain<String(]args>{
newtest9_8<>.inito;
)
)
运行结果:
9.练习使用JComboBoxn包括一个JLable、一个JComboBox,可以通过输入或者选择JComboBox
中的某一项来控制儿able中文字的大小。
//test9_9
importjava.awt.Container;
importjava.awt.Font;
importjava.awt.GridLayout;
importjava.awt.event.ItemEvent;
importjava.awt.event.ItenListener;
importjavax.swing.JComboBox;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
publicclasstest99_.extendsJFrameimplementsItemListener{
publicJFramejFrame;
privateJLabeljLabel;
privateJComboBoxjComboBox;
n
privateString[]fontsize=(8"z“14“,“20“,”28”,"32","40”);
publicvoidinito{
jFrame=newJFramev”练习ComboBox"〉;
Containercontainer=jFrame.getContentPaneo;
container.setLayout<newGridLayout<2,1>>;
jFrame.setDefaultCloseOperation<JFrame.EXIT_ON_CLOSE>;
jLabel=newJLabelc”你好吗?n>;
jLabel.setFont<newFonte"”,0,10»;//设置字体大小
jComboBox=newJComboBox<fontSize>;
jComboBox.setEditable<true>;//设置复选框可以输入
jComboBox.addItemListener<this>;//添力口工temListener监听
//添加两个组件
container.add<jLabel>;
container.add<jComboBox>;
jFrame.packo;//排版
jFrame.setVisible<true>;//显示
12/23
)
publicvoidiLeniStaLeChauyIteinEvenLe>{
〃使用这个判断的目的的是为了避免触发事件总是执行两次的问题
if<e.getStateChangeO==ItemEvent.SELECTED>{
try{
Strings=jComboBox.getSelectedltemo.toStringo;
intintFontSize=Integer.parselnt<s>;
jLabel.setFont<newFont<"",0,intFontSize»;
//System.out.println<intFontSize>;
}catch<NumberFormatExceptionr>{
JOptionPane.showMessageDialog<this,”请照入整数”>;
}
)
}
publicstaticvoidmain<String[]args>{
newtest9_9<>.inito;
)
}
运行结果:
10.练习使用JTable.包括姓名、学号、语文成绩、数学成绩、总分五项,单击总分会自动将
语文数学成绩相加。
importjava.awt.event.*;
importjavax.swing.*;
importjavax.swing.table.*;
publicclassTest9_l0extendsJFrameimplementsMouseListener{
privateJTablejTable;
privateObject[][]cellData={{"姓名",newStringv1•林楚金”),
{“学号”,newString<n202205">},{”语文成绩”,new
String<"86">},
{"数学成绩",newString<u96,,>},{“总分”,newStringc”点击出
总分”}};
privateString[]columnNames={"coll”,ncol2;
publicTest9_l0<>{
DefaultTableModelmodel=newDefaultTableModeKcellData,
columnNames>{
publicbooleanisCellEditable<introw,intcolumn>{
returnfalse;
}
};
jTable=newJTable<model>;
jTable.addMouseListener<this>;
this.add<jTable>;
this.setTitle〈”表格演示
this.setSize<300,350>;
13/23
this.setLocation<200,200>;
this.setDefaultCloseOperation<JFrame.EXIT_ON_CLOSE>;
this.setvisible<true>;
)
publicvoidmouseClicked<McuseEvente>{
DefaultTableModeltableModel=<DefaultTableMcdel>
jTable.getModelo;
introw=jTable.getSeleciedRowO;
intcolumn=jTable.getSelectedColumno;
if<row==4&&column==l>{
Stringyuwen=<String>tableModel.getValueAt<2,column〉;//
语文成绩
Stringshuxue=<String>tableModel.getValueAt<3,column>;//
数学成绩
Integercount=
Integer.parselnt<yuwen>+Integer.parselnt<shuxue>;
tableModel.setValueAt<count.toStringo,row,column>;
}
}
publicvoidmouseEntered<McuseEvente>{
)
publicvoidmouseExited<MouseEvente>{
}
publicvoidmousePressed<McuseEvente>{
)
publicvoidmouseReleased<MouseEvente>{
}
publicstaticvoidmain<String[]args>{
newTest9_10<>;
)
运行结果:
11.练习使用对话框。包括一个儿able和两个JButton,按任何一个JButton都会产生一个对话
框,按确定后将输入内容在儿able中显示出来。
//test9_ll
importjava.awt.Container;
importjava.awt.Frame;
importjava.awt.GridLayout;
importjava,awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
14/23
publicclasstest91l_.extendsFrameimplementsActionListener{
JFramejFrame;
JButtonjButtonl;
JButtonjButton2;
JLabeljLabel;
publicvoidinit<>{
JFramejFrame=newJFrame<”练习使用对话框“>;
Containerpane=jFrame.getContentPaneO;
pane.setLayout<newGridLayout<3,1>>;
jButtonl=newJButton<"^^ll">;
jButtonl.addActionListener<this>;
jButton2=newJButton<H^^2">;
jButton2.addActionListener<this>;
jLabel=newJLabelo;
jFrame.setDefaultCloseOperation<JFrame.EXIT_ON_CLOSE>;
pane.add<jButtonl>;
pane.add<jButton2>;
pane.add<jLabel>;
jFrame.packo;
jFrame.setvisible<true>;
)
@Override
publicvoidactionPerformed<ActionEvente>{
//TODOAuto-generatedmethodstub
if<e.getActionConunando=="按钮1"IIe.getActionComir.ando=="按钮2”>
(
Strings=JOptionPane.showInputDialog<this,,"请输入”>;
jLabel.setText<s>;
}
)
publicstaticvoidmain<String[]args>{
newtest9_ll<>.inito;
)
}
运行结果:
<下面的题目有空再做》
12.练习使用JMenu、JFileChooser%JColorChooser(>通过菜单可以打开文件选择对话框,来打
开某一指定文本文件,通过菜单可打开颜色选择对话框控制显示文本的颜色。
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
importjava,io.BufferedReader;
importjava.io.FileReader;
importjava.io.lOExceptior.;
15/23
publicclassTest9_l2extendsJFrameimplementsActionListener{
//文本域
privateJTextAreajta=null;
〃菜单栏
privateJMenuBarjmb=null;
〃菜单栏中的一个菜单项
privateJMenujml=null;
//菜单项中的下拉列表
privateJMenuItemjmil=null;
privateJMenuItemjmi2=null;
〃颜色对象选择
privateJFileChooserjfc=null;
publdeiTftst9_1?.<>{
jta=newJTextAreao;
this.jmb=newJMenuBarO;
this.jml=new选择”>;
//设置助记符
this.jml.setMnemonic<*F'>;
this.jmil=newJMenu工tem〈“打'开文件”>;
this.jmi2=newJMenu工tem〈"选择颜色
//注册监听
this.jmil.addActionListener<this>;
this.jmil.setActionCommard<HopenFile">;
this.jmi2.addActionListener<this>;
this.jmi2.setActionCommancK'^hooseColor'^;
//把JMenuBar加^JFrame
this.setJMenuBar<jmb>;
//把菜单放到
this.jmb.add<this.jml>;
//把工tem放至jml
this.jml.add<this.jmil>;
this.jml.add<this.jmi2>;
this.add<jta>;
this.setTitleC”记事本/颜色选择案例”>;
this.setSize<400z300>;
this.setLocation<200,200>;
this.setDefaultCloseOperation<JFrame.EXIT_ON_CLOSE>;
this.setvisible<true>;
)
publicvoidactionPerformed<ActionEvente>{
if<e.getActionCommando.equals<*'openFile">>{
System.out.print"打开
this.jfc=newJFileChoosero;
this.jfc.setDialogTitlev”请选择文件...">;
16/23
〃打开的时候默认的属性
this.jfc.showOpenDialog<null>;
this.jfc.setVisible<true>;
//得到用户选择的文件路径,绝对路径
StringfilePath=
this.jfc.getSelectedFileO.getAbsolutePathO;
System,out.println<filePath>;
FileReaderfr=null;
BufferedReaderbr=null;
try(
fr=newFileReader<filePath>;
br=newBufferedReader<fr>;
Strings=n";
Stringsall=nn;
while<<s=br.readLine<>>!=null>{
//bufferedReader遇到换行即一行。。
s+=”\r\n”;//所以后面补上换行号
sall+=s;
)
this.jta.setText<sall>;
}catch<Exceptionel>{
el.printStackTraceO;
}finally(
try(
br.closeo;
fr.closeo;
}catch<I02xceptionel>{
el.printStackTraceo;
1
}
)
if<e.getActionCommando.equals<"chooseColor*'>>{
Colorcolor=newColor<0,0,0>;
color=JColorChooser.showDialog<this,"ChooseColor",color>;
ound<color>;
〃设置字体颜色
this.jta.setForeground<color>;
}
)
publicstaticvoidmain<String(]args>{
newTest9_12<>;
)
}
运行结果:
17/23
13.编写一个图形用户界面,包括三个JSlider对象和三个JTexField对象。每一个JSlider代表颜
色中的红、绿、蓝三部份,它们的值从。到255,在相应的JTextF回d中显示各个JSlider的当前
值。用这三个值作为Color类构造方法的参数创建一个新的Color对象,用来填充一个矩形。
importjava.awt.*;
importjavax.swing.*;
importjavax.swing.event.*;
publicclassTest9_l3extendsJFrameimplementsChangeListener{
privateJTextFieldtextFieldl;
privateJTextFieldtextField2;
privateJTextFieldtextField3;
privateJLabellabell;
privateJLabellabel2;
privateJLabellabe13;
privateJSlidersliderl;
privateJSliderslider2;
privateJSliderslider3;
privateMyPanelmyPanel;
publicTest9_l3<>{
this.setTitle<nJSliderDemo'^;
this.setSize<200,200>;
this.setVisible<true>;
this.setDefaultCloseOperation<JFrame.EXIT_ON_CLOSE>;
this.setLayout<newGridLayout<4,3»;
this.labell=newJLabelv"红”
this.Iabel2=newJLabelc"绿”
this.Iabel3=newJLabelc“蓝"》
this.textFieldlnewJTextField<5>;
this.textField2newJTextField<5>;
this.textField3=newJTextField<5>;
this.sliderl=newJSlide
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年甘肃会展中心有限责任公司招聘笔试参考题库含答案解析
- 2025年全球及中国医用协作机器人行业头部企业市场占有率及排名调研报告
- 2025-2030全球邻氯苯腈(氯化法)行业调研及趋势分析报告
- 2025-2030全球触控灯行业调研及趋势分析报告
- 远程教育中如何培养学生的自我约束力
- 运动疗法在医疗领域的新突破
- 教学创新与科研突破的相互关系研究
- 数据安全保卫战网络安全教育专题研讨与执行总结
- 茶艺技能在商业领域的应用与拓展
- 二零二五年度网络安全技术支持与服务合同6篇
- 2024年全国职业院校技能大赛高职组(研学旅行赛项)考试题库(含答案)
- 2025年温州市城发集团招聘笔试参考题库含答案解析
- 2025年中小学春节安全教育主题班会课件
- 2025版高考物理复习知识清单
- 除数是两位数的除法练习题(84道)
- 2025年度安全检查计划
- 2024年度工作总结与计划标准版本(2篇)
- 全球半导体测试探针行业市场研究报告2024
- 反走私课件完整版本
- 2024年注册计量师-一级注册计量师考试近5年真题附答案
- 四年级下册数学知识点总结
评论
0/150
提交评论