java程序设计教程部分答案3.docx
《java程序设计教程部分答案3.docx》由会员分享,可在线阅读,更多相关《java程序设计教程部分答案3.docx(30页珍藏版)》请在冰豆网上搜索。
java程序设计教程部分答案3
Pp5.15统计元音字母个数
packageStatistics_aeiou;
importjava.awt.Dimension;
importjava.awt.Toolkit;
importjavax.swing.JFrame;
publicclassStatistics{
publicstaticvoidmain(String[]args){
JFrameframe=newJFrame("元音字母统计柱状图");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,500);
DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();
intx=(screenSize.width-frame.getWidth())/2;
inty=(screenSize.height-frame.getHeight())/2;
frame.setLocation(x,y);
AeiouPanelpanel=newAeiouPanel();
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
}
}
packageStatistics_aeiou;
importjava.awt.BorderLayout;
importjava.awt.Color;
importjava.awt.Component;
importjava.awt.Dimension;
importjava.awt.FlowLayout;
importjava.awt.Graphics;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.Box;
importjavax.swing.BoxLayout;
importjavax.swing.JButton;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.JTextField;
publicclassAeiouPanelextendsJPanel{
privateJLabelinput,label1,label2,label3,label4,label5,label6;
privateJTextFieldtext;
privateJButtonsure,exit;
privateJPanelpanel,panel1;
privatefinalintN=60,WITH=30;
publicAeiouPanel(){
input=newJLabel("InputCharacter:
");
text=newJTextField(15);
sure=newJButton("确定");
exit=newJButton("退出");
panel=newJPanel();
panel1=newJPanel();
label1=newJLabel("a:
");
label2=newJLabel("e:
");
label3=newJLabel("i:
");
label4=newJLabel("o:
");
label5=newJLabel("u:
");
label6=newJLabel("其它字符:
");
AeiouListenerlistener=newAeiouListener();
sure.addActionListener(listener);
exit.addActionListener(listener);
panel.setLayout(newFlowLayout());
panel.setBackground(Color.cyan);
panel.add(input);
panel.add(text);
panel.add(sure);
panel.add(exit);
panel1.setLayout(newBoxLayout(panel1,BoxLayout.Y_AXIS));
panel1.setBackground(Color.cyan);
panel1.add(label1);
panel1.add(Box.createRigidArea(newDimension(0,20)));
panel1.add(label2);
panel1.add(Box.createRigidArea(newDimension(0,20)));
panel1.add(label3);
panel1.add(Box.createRigidArea(newDimension(0,20)));
panel1.add(label4);
panel1.add(Box.createRigidArea(newDimension(0,20)));
panel1.add(label5);
panel1.add(Box.createRigidArea(newDimension(0,20)));
panel1.add(label6);
setLayout(newBorderLayout());
add(panel,BorderLayout.NORTH);
add(panel1,BorderLayout.EAST);
setBackground(Color.cyan);
setPreferredSize(newDimension(500,500));
}
privateclassAeiouListenerimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==sure)
repaint();
if(e.getSource()==exit){
System.exit(0);
}
}
}
publicvoidpaintComponent(Graphicspage){
super.paintComponent(page);
Stringa=text.getText();
intj=0,l=0,m=0,n=0,k=0,p=0;
for(inti=0;iswitch(a.charAt(i)){
case'a':
j++;break;
case'e':
l++;break;
case'i':
m++;break;
case'o':
n++;break;
case'u':
p++;break;
default:
k++;
}
label1.setText("a:
"+j);
label2.setText("e:
"+l);
label3.setText("i:
"+m);
label4.setText("o:
"+n);
label5.setText("u:
"+p);
label6.setText("其它字符:
"+k);
}
intx=50,y=50,x1=75;
page.setColor(Color.black);
page.drawLine(x,400,450,400);
page.setColor(Color.black);
page.drawLine(x,y,x,400);
page.setColor(Color.red);
page.fillRect(x1,400-10*j,WITH,10*j);
page.setColor(Color.blue);
page.fillRect(x1+N,400-10*l,WITH,10*l);
page.setColor(Color.green);
page.fillRect(x1+2*N,400-10*m,WITH,10*m);
page.setColor(Color.yellow);
page.fillRect(x1+3*N,400-10*n,WITH,10*n);
page.setColor(Color.gray);
page.fillRect(x1+4*N,400-10*p,WITH,10*p);
page.setColor(Color.pink);
page.fillRect(x1+5*N,400-10*k,WITH,10*k);
}
}
运行界面截图:
输入前界面:
输入后界面:
Pp5.22画100个随机圆。
packageDrawCircle;
importjava.awt.Dimension;
importjava.awt.Toolkit;
importjavax.swing.JFrame;
publicclassDrawCircle{
publicstaticvoidmain(String[]args){
JFrameframe=newJFrame("Circles");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(350,375);
DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();
intx=(screenSize.width-frame.getWidth())/2;
inty=(screenSize.height-frame.getHeight())/2;
frame.setLocation(x,y);
CirclePanelpanel=newCirclePanel();
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
}
}
packageDrawCircle;
importjava.awt.BorderLayout;
importjava.awt.Color;
importjava.awt.Dimension;
importjava.awt.Graphics;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.util.Random;
importjavax.swing.Box;
importjavax.swing.BoxLayout;
importjavax.swing.JButton;
importjavax.swing.JPanel;
importDrawCircle1.CirclePanel1.CircleListner;
publicclassCirclePanelextendsJPanel{
privatestaticfinallongserialVersionUID=1L;
privatefinalintNUMCIRCLES=100,MAXRADIOUS=100;
privatefinalintMAX_X=250,MAX_Y=250;
privateRandomgenerator;
privateJButtonagain,exit;
privateJPanelpanel;
publicCirclePanel(){
generator=newRandom();
again=newJButton("again");
exit=newJButton("exit");
panel=newJPanel();
panel.setLayout(newBoxLayout(panel,BoxLayout.X_AXIS));
panel.add(again);
panel.add(Box.createHorizontalGlue());
panel.add(exit);
panel.setBackground(Color.green);
setLayout(newBorderLayout());
add(panel,BorderLayout.SOUTH);
CircleListnerlistener=newCircleListner();
again.addActionListener(listener);
exit.addActionListener(listener);
setBackground(Color.green);
setPreferredSize(newDimension(350,375));
}
publicclassCircleListnerimplementsActionListener{
publicvoidactionPerformed(ActionEventevent){
if(event.getSource()==again){
repaint();
}
if(event.getSource()==exit){
System.exit(0);
}
}
}
publicvoidpaintComponent(Graphicspage){
super.paintComponent(page);
intx,y,radious;
for(intcount=0;countx=generator.nextInt(MAX_X)+1;
y=generator.nextInt(MAX_Y)+1;
radious=generator.nextInt(MAXRADIOUS)+1;
if(radious<=35){
page.setColor(Color.blue);
page.drawOval(x,y,radious,radious);
}
else
if(radious<=70){
page.setColor(Color.yellow);
page.drawOval(x,y,radious,radious);
}
else
{
page.setColor(Color.red);
page.drawOval(x,y,radious,radious);
}
}
}
}
运行界面截图
Pp5.29画点。
packageDrawDots;
importjava.awt.Dimension;
importjava.awt.Toolkit;
importjavax.swing.JFrame;
publicclassDrawDots{
publicstaticvoidmain(String[]args){
JFrameframe=newJFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,500);
DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();
intx=(screenSize.width-frame.getWidth())/2;
inty=(screenSize.height-frame.getHeight())/2;
frame.setLocation(x,y);
DotPanelpanel=newDotPanel();
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
}
}
packageDrawDots;
importjava.awt.BorderLayout;
importjava.awt.Color;
importjava.awt.Dimension;
importjava.awt.Graphics;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.util.Random;
importjavax.swing.Box;
importjavax.swing.BoxLayout;
importjavax.swing.JButton;
importjavax.swing.JPanel;
importDrawCircle1.CirclePanel1.CircleListner;
publicclassDotPanelextendsJPanel{
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
privatefinalintMAXDOTS=20000,BOUNDARY=250,MAXSIDE=500,WIDTH=1;
privateRandomgenerator;
privateJButtonagain,exit;
privateJPanelpanel;
publicDotPanel(){
generator=newRandom();
again=newJButton("again");
exit=newJButton("exit");
panel=newJPanel();
panel.setLayout(newBoxLayout(panel,BoxLayout.X_AXIS));
panel.add(again);
panel.add(Box.createHorizontalGlue());
panel.add(exit);
panel.setBackground(Color.cyan);
setLayout(newBorderLayout());
add(panel,BorderLayout.SOUTH);
DotListnerlistener=newDotListner();
again.addActionListener(listener);
exit.addActionListener(listener);
setBackground(Color.cyan);
setPreferredSize(newDimension(500,500));
}
publicclassDotListnerimplementsActionListener{
publicvoidactionPerformed(ActionEventevent){
if(event.getSource()==again){
repaint();
}
if(event.getSource()==exit){
System.exit(0);
}
}
}
publicvoidpaintComponent(Graphicspage){
super.paintComponent(page);
intx,y;
for(inti=0;ix=generator.nextInt(MAXSIDE)+1;
y=generator.nextInt(MAXSIDE)+1;
if(x<=BOUNDARY){
page.setColor(Color.red);
page.fillRect(x,y,WIDTH,WIDTH);
}
else
{
page.setColor(Color.green);
page.fillRect(x,y,WIDTH,WIDTH);
}
}
}
}
运行界面截图:
Pp5.30画10个随机圆。
packageDrawCircle1;
importjava.awt.Dimension;
importjava.awt.Toolkit;
importjavax.swing.JFrame;
publicclassDrawCircle1{
publicstaticvoidmain(String[]args){
JFrameframe=newJFrame("Circles");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(350,450);
DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();
intx=(screenSize.width-frame.getWidth())/2;
inty=(screenSize.height-frame.getHeight())/2;
frame.setLocation(x,y);
CirclePanel1panel=newCirclePanel1();
frame.getContentPane().add(panel);
f