上机实践7组件及事件处理2Word下载.docx
- 文档编号:8293638
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:14
- 大小:17.72KB
上机实践7组件及事件处理2Word下载.docx
《上机实践7组件及事件处理2Word下载.docx》由会员分享,可在线阅读,更多相关《上机实践7组件及事件处理2Word下载.docx(14页珍藏版)》请在冰点文库上搜索。
publicdoublegetRootTwo()throwsNoRealRootException,NoSquareEquationException
{root2=(-b-Math.sqrt(disk))/(2*a);
returnroot2;
}
classNoRealRootExceptionextendsException
{Stringmessage;
NoRealRootException(Strings)
{message=s;
publicStringgetMessage()
{returnmessage;
classNoSquareEquationExceptionextendsException
NoSquareEquationException(Strings)
EquationFrame.java
importjava.awt.*;
importjava.awt.event.*;
publicclassEquationFrameextendsFrameimplementsActionListener
{SquareEquationequation;
TextFieldtextA,textB,textC;
TextAreashowRoots;
ButtoncontrolButton;
publicEquationFrame()
{equation=newSquareEquation();
textA=newTextField(8);
textB=newTextField(8);
textC=newTextField(8);
showRoots=newTextArea();
controlButton=newButton("
确定"
PanelpNorth=newPanel();
pNorth.add(newLabel("
二次项系数:
"
));
pNorth.add(textA);
一次项系数:
pNorth.add(textB);
常数项系数:
pNorth.add(textC);
pNorth.add(controlButton);
【代码1】//当前窗口作为controlButton的ActionEvent事件的监视器
add(pNorth,BorderLayout.NORTH);
add(showRoots,BorderLayout.CENTER);
setBounds(100,100,630,160);
setVisible(true);
validate();
addWindowListener(newWindowAdapter()
{publicvoidwindowClosing(WindowEvente)
{System.exit(0);
);
publicvoidactionPerformed(ActionEvente)
{try{
doublea=Double.parseDouble(【代码2】);
//textA调用方法获取其中的文本
doubleb=Double.parseDouble(【代码3】);
//textB调用方法获取其中的文本doublec=Double.parseDouble(【代码4】);
//textC调用方法获取其中的文本
equation.setA(a);
equation.setB(b);
equation.setC(c);
textA.setText("
+a);
textB.setText("
+b);
textC.setText("
+c);
showRoots.append("
\n根:
+equation.getRootOne());
根:
+equation.getRootTwo());
catch(Exceptionex)
{showRoots.append("
\n"
+ex+"
EquationMainClass.java
publicclassEquationMainClass
{publicstaticvoidmain(Stringargs[])
{EquationFrameframe=newEquationFrame();
实验2字体对话框
FontFamilyNames.java
importjava.awt.GraphicsEnvironment;
publicclassFontFamilyNames
{StringfontName[];
publicString[]getFontName()
{GraphicsEnvironmentge=GraphicsEnvironment.getLocalGraphicsEnvironment();
fontName=ge.getAvailableFontFamilyNames();
returnfontName;
FontDialog.java
importjavax.swing.JLabel;
publicclassFontDialogextendsDialogimplementsItemListener,ActionListener
{FontFamilyNamesfontFamilyNames;
intfontSize=38;
StringfontName;
ChoicefontNameList;
JLabellabel;
Fontfont;
Buttonyes,cancel;
staticintYES=1,NO=0;
intstate=-1;
FontDialog(Framef)
{super(f);
fontFamilyNames=newFontFamilyNames();
【代码1】//对话框设置为有模式
yes=newButton("
Yes"
cancel=newButton("
cancel"
yes.addActionListener(this);
cancel.addActionListener(this);
label=newJLabel("
hello,奥运"
JLabel.CENTER);
fontNameList=newChoice();
Stringname[]=fontFamilyNames.getFontName();
for(intk=0;
k<
name.length;
k++)
{fontNameList.add(name[k]);
fontNameList.addItemListener(this);
add(fontNameList,BorderLayout.NORTH);
add(label,BorderLayout.CENTER);
PanelpSouth=newPanel();
pSouth.add(yes);
pSouth.add(cancel);
add(pSouth,BorderLayout.SOUTH);
setBounds(100,100,280,170);
{state=NO;
setVisible(false);
publicvoiditemStateChanged(ItemEvente)
{fontName=(String)fontNameList.getSelectedItem();
font=newFont(fontName,Font.BOLD,fontSize);
label.setFont(font);
label.repaint();
{if(e.getSource()==yes)
{state=YES;
【代码2】//对话框设置为不可见
elseif(e.getSource()==cancel)
【代码3】//对话框设置为不可见
publicintgetState()
{returnstate;
publicFontgetFont()
{returnfont;
}
FrameHaveDialog.java
importjavax.swing.JTextArea;
publicclassFrameHaveDialogextendsFrameimplementsActionListener
{JTextAreatext;
ButtonbuttonFont;
FrameHaveDialog()
{buttonFont=newButton("
设置字体"
text=newJTextArea("
Java2实用教程(第三版)"
buttonFont.addActionListener(this);
add(buttonFont,BorderLayout.NORTH);
add(text);
setBounds(60,60,300,300);
{if(e.getSource()==buttonFont)
{FontDialogdialog=【代码4】//创建对话框
【代码5】//对话框设置为可见
【代码6】//对话框设置设置标题为“字体对话框”
if(dialog.getState()==FontDialog.YES)
{text.setFont(dialog.getFont());
text.repaint();
if(dialog.getState()==FontDialog.NO)
{text.repaint();
FontDialogMainClass.java
publicclassFontDialogMainClass
{newFrameHaveDialog();
实验3英语单词拼写训练
RondomString.java
publicclassRondomString
{Stringstr="
;
publicStringgetRondomString(Strings)
{StringBufferstrBuffer=newStringBuffer(s);
intm=strBuffer.length();
m;
{intindex=(int)(Math.random()*strBuffer.length());
charc=strBuffer.charAt(index);
str=str+c;
strBuffer=strBuffer.deleteCharAt(index);
returnstr;
LetterLabel.java
publicclassLetterLabelextendsButtonimplementsFocusListener,MouseListener
{LetterLabel()
{【代码1】//将当前对象注册为自身的焦点视器
【代码2】//将当前对象注册为自身的标监视器
setBackground(Color.cyan);
setFont(newFont("
Font.BOLD,30));
publicstaticLetterLabel[]getLetterLabel(intn)
{LetterLabela[]=newLetterLabel[n];
a.length;
{a[k]=newLetterLabel();
returna;
publicvoidfocusGained(FocusEvente)
{setBackground(Color.red);
publicvoidfocusLost(FocusEvente)
{setBackground(Color.cyan);
publicvoidmousePressed(MouseEvente)
{requestFocus();
publicvoidsetText(charc)
{setLabel("
publicvoidmouseReleased(MouseEvente){}
publicvoidmouseEntered(MouseEvente){}
publicvoidmouseExited(MouseEvente){}
publicvoidmouseClicked(MouseEvente){}
SpellingWordFrame.java
importjavax.swing.Box;
publicclassSpellingWordFrameextendsFrameimplementsKeyListener,ActionListener
{TextFieldinputWord;
Buttonbutton;
LetterLabellabel[];
PanelnorthP,centerP;
BoxwordBox;
StringhintMessage="
用鼠标单击字母,按左右箭头交换字母,将其排列成所输入的单词"
LabelmessaageLabel=newLabel(hintMessage);
Stringword="
SpellingWordFrame()
{inputWord=newTextField(12);
button=newButton("
button.addActionListener(this);
inputWord.addActionListener(this);
northP=newPanel();
northP.add(newLabel("
输入一个英文单词:
northP.add(inputWord);
northP.add(button);
centerP=newPanel();
wordBox=Box.createHorizontalBox();
centerP.add(wordBox);
add(northP,BorderLayout.NORTH);
add(centerP,BorderLayout.CENTER);
add(messaageLabel,BorderLayout.SOUTH);
setBounds(100,100,350,180);
{word=inputWord.getText();
intn=word.length();
RondomStringrondom=newRondomString();
StringrandomWord=rondom.getRondomString(word);
wordBox.removeAll();
messaageLabel.setText(hintMessage);
if(n>
0)
{label=LetterLabel.getLetterLabel(n);
label.length;
{【代码3】//将当前窗口注册为label[k]的键盘监视器
label[k].setText("
+randomWord.charAt(k));
wordBox.add(label[k]);
inputWord.setText(null);
label[0].requestFocus();
publicvoidkeyPressed(KeyEvente)
{LetterLabelsourceLabel=(LetterLabel)e.getSource();
intindex=-1;
if(【代码4】)//判断按下的是否是←键)
{for(intk=0;
{if(label[k]==sourceLabel)
{index=k;
break;
if(index!
{Stringtemp=label[index].getText();
label[index].setText(label[index-1].getText());
label[index-1].setText(temp);
label[index-1].requestFocus();
elseif(【代码5】)//判断按下的是否是→键
=label.length-1)
label[index].setText(label[index+1].getText());
label[index+1].setText(temp);
label[index+1].requestFocus();
validate();
publicvoidkeyTyped(KeyEvente){}
publicvoidkeyReleased(KeyEvente)
{Stringsuccess="
{Stringstr=label[k].getText();
success=success+str;
if(success.equals(word))
{messaageLabel.setText("
恭喜你,你成功了"
{label[k].removeKeyListener(this);
label[k].removeFocusListener(label[k]);
label[k].setBackground(Color.green);
inputWord.requestFo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上机 实践 组件 事件 处理