[簡答題]
本題的功能是用按鈕來控制文本框中文本的顏色。窗口中有兩個帶有文字標題的面板“Sample text”和“Text color control”,窗口的底部還有一個復(fù)選按鈕“Disable changes”。在“Sample text”面板中有一個帶有字符串的文本框,而在“Text color control”面板中有三個按鈕:“Black”、“Red”和“Green”,并且每個按鈕上都有一個對應(yīng)顏色的圓。單擊任意按鈕,文本框中的文本變成對應(yīng)的顏色,如果選中“Disable changes”復(fù)選項,則三個顏色按鈕變?yōu)椴豢捎?,如果取消選中復(fù)選項,則三個按鈕變?yōu)榭捎谩?BR> import javax.swing.*;
import java.a(chǎn)wt.*;
import java.a(chǎn)wt.event.*;
public class java3 extends JFrame{
private JPanel upper,middle,lower;
private JTextField text;
private JButton black,red,green;
private JCheckBox disable;
public java3(String titleText){
super(titleText);
addWindowListener(new WindowAdapter(){
public void
windowClosing(WindowEvent e){
System.exit(0);
}
}
);
upper=new JPanel();
upper.setBorder(BorderFactory.ereateTitledBor-
der("Sample text"));
upper.setlayout(new BorderLayout());
text=new JTextField("Change the color of this
text"):
upper.a(chǎn)dd(text,BorderLayout.CENTER);
middle=new JPanel();
middle.setBorder(BorderFactory.createTitledBor-
der("Text color control"));
middle.setLayout(new FlowLayout(FlowLayout.
CENTER)):
black=new JButton("Black",new ColorIcon
(Color.black));
black.a(chǎn)ddActionListener( new ButtonListener
(Color.black));
middle.a(chǎn)dd(black);
red=new JButton("Red",new ColorIcon(Col-
or.red));
red.a(chǎn)ddActionListener(new ButtonListener(Col-
or.red));
middle.a(chǎn)dd(red);
green=new JButton("Green",new ColorIcon
(Color.green));
green.a(chǎn)ddActionListener(new ButtonListener
(Color.green));
middle.a(chǎn)dd(green);
lower=new JPanel();
lower.setLayout(new FlowLayout(FlowLayout.
RIGHT));
disable=new JCheckBox("Disable changes"):
disable.a(chǎn)ddItemListener(new ItemListener()(
public void itemStateChanged(ItemEvent e){
boolean enabled
=(e.getStateChange()
= =ItemEvent.DESELECTED):
black.setEnabled(enabled);
red.setEnabled(enabled);
green.setEnabled(enabled);
}
}
);
lower.a(chǎn)dd(disable);
Container cp=getContentPane();
cp.a(chǎn)dd(upper,BorderLayout.NORTH);
cp.a(chǎn)dd(middle,BorderLayout.CENTER);
cp.a(chǎn)dd(10wer,BorderLayout.SoUTH);
pack();
setVisible(true);
}
class ButtonListener extends ActionListener{
private Color c;
public ButtonListener(Color c){
this.c=c;
}
public void actionPerformed(ActionEvent e){
text.setForeground(c);
}
}
class ColorIcon implements Icon{
private Color c;
private static final int DIAMETER=10;
public ColorIcon(Color c){
c=c;
}
public void paintlcon(Component cp,Graphics g,
int x,int y){
g.setColor(c);
g.fillOval(X,y,DIAMETER,DIAMETER);
g.setColor(Color.black);
g.drawOval(x,y,DIAMETER,DIAMETER);
}
public int getlconHeight(){
return DIAMETER;
}
public int getlconWidth(){
return DIAMETER;
}
}
public static void main(String[]args){
new java3("advance");
}
}
請在此輸入您的答案
10[簡答題]
本題的功能是用按鈕來控制文本框中文本的顏色。窗口中有兩個帶有文字標題的面板“Sample text”和“Text col—or control”,窗口的底部還有一個復(fù)選按鈕“Disable chan-ges”。在“Sample text”面板中有一個帶有宇符串的文本框,而在“Text color control”面板中有三個按鈕“Black”、“Red”和“Green”,并且每個按鈕上都有一個對應(yīng)顏色的圓。單擊任意按鈕,文本框的文本變成對應(yīng)的顏色,如果選中“Disa-ble changes”復(fù)選框,則三個顏色按鈕變?yōu)椴豢捎?,如果取消選中復(fù)選框,則三個按鈕變?yōu)榭捎谩?BR> import javax.swing.*;
import java.a(chǎn)wt.*;
import java.a(chǎn)wt.event.*;
public class java3 extends JFrame{
private JPanel upper,middle,lower;
private JTextField text;
private JButton black,red,green;
private JCheckBox disable;
public java3(String titleText){
super(titleText);
addWindowListener(new WindowAdapter(){
public void
windowClosing(WindowEvent e){
System.exit(0);
}
});
upper=new JPanel();
upper.setBorder(BorderFactory.ereateTitledBor-
der("Sample text")):
Upper.setlayout(new BorderLayout());
text=new JTextField("Change the color of this
text");
upper.a(chǎn)dd(text,BorderLayout.CENTER);
middle=new JPanel();
middle.setBorder(BorderFactory.createTitledBor-
der("Text color control"));
middle.setLayout(new FlowLayout(FlowLayout.
CENTER)):
black=new JButton("Black",new ColorIcon(
Color.black));
black.a(chǎn)ddActionListener(new ButtonListener(
Color.black));
middle.a(chǎn)dd(black);
red=new JButton("Red",new ColorIeon(Col-
or.red));
red.a(chǎn)ddActionListener(new ButtonListener(Col-
or.red));
middle.a(chǎn)dd(red);
green=new JButton("Green",new ColorIcon(
Color.green));
green.a(chǎn)ddActionListener(new ButtonListener(
Color.green));
middle.a(chǎn)dd(green);
lower=new JPanel();
lower.setLayout(new FlowLayout(FlowLayout.
RIGHT));
disable=new JCheckBox("Disable changes");
disable.a(chǎn)ddhemListener(new hemListener(){
public void itemStateChanged(hemEvent e){
boolean enabled
= (e.getStateChange()
= =ItemEvent.DESELECTED);
black.setEnabled(enabled);
red.setEnabled(enabled);
green.setEnabled(enabled);
}
}
);
lower.a(chǎn)dd(disable):
Container cp=getContentPane();
cp.a(chǎn)dd(upper,BorderLayout.NORTH);
ep.a(chǎn)dd(middle,BorderLayout.CENTER);
ep.a(chǎn)dd(10wer,BorderLayout.SOUTH);
pack();
setVisible(true);
}
class ButtonListener extends ActionListener{
private Color c;
public ButtonListener(Color c)f
this.c=c;
}
public void aetionPerformed(ActionEvent e){
text.setForeground(c);
}
}
class ColorIcon implements Icon{
private Color c;
private static final int DIAMETER=10;
public Colorlcon(Color c){
c=c;
}
public void paintleon(Component cp,Graphics g,
int X,int Y){
g.setColor(e);
g.fillOval(x,Y,DIAMETER,DIAMETER);
g.setColor(Color.black);
g.drawOval(x,y,DIAMETER,DIAMETER);
}
public int getIconHeight(){
return DIAMETER:
}
public int getlconWidth(){
return DIAMETER;
}
}
public static void main(String[]args){
new java3("java3");
}
}
請在此輸入您的答案
11[簡答題]
下面程序中,在主窗口單擊鼠標后,就會生成一個新
窗口。
import java.a(chǎn)wt.*;
import java.a(chǎn)wt.event.*;
public class java3 extends Frame{
java3(){
super("java3");
addNotify();
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
Insets insets=getInsets();
setSize(insets.left+insets.right+150,
insets.top+insets.bottom+150);
this.a(chǎn)ddMouseListener(MouseEventHandler());
}
class MouseEventHandler implements MouseAda-
pter{
public void mousePresse(MouseEvent evt){
Rectangle bounds=getBounds();
int x=evt.getX()+bounds.x;
int y=evt.getY()十bounds.y;
java3 m=newjava3();
m.setLocation(x,y);
m.show();
}
}
static public void main(String[]args){
(new java3()).show();
}
}
請在此輸入您的答案
12[簡答題]
本題的功能是用文本框來設(shè)定表盤中指針的位置。窗口中有一個畫板和兩個文本框,畫板中繪制了一個表盤和時針、分針,通過文本框分別設(shè)定“時”和“分”,表盤中的時針和分針就會指到對應(yīng)的位置上。
import java.a(chǎn)wt.*;
import java.a(chǎn)wt.event*;
import java.a(chǎn)wt.geom.*;
import javax.swing.*;
import javax.swing.event.*;
public class java3
{
public static void main(String[]args)
{
TextTestFrame frame=new TextTestFrame():
frame.setDefauhCloseOperation(JFrame.EXIT_
0N_CLOSE);
frame.show();
}
}
class TextTestFrame extends JFrame
{
public TextTestFrame()
{
setTitle("java3"):
setSize(DEFAULT_WIDTH,DEFAULT_
HElGHT);
Container contentPane=getContentPane();
DocumentListener listener=new DoeumentListen-
er();
JPanel panel=new JPanel();
hourField=new JTextField("12",3);
panel.a(chǎn)dd(hourField);
hourField.getDocument().a(chǎn)ddDocumentListener
(this);
minuteField=new JTextField("00",3):
panel.a(chǎn)dd(minuteField);
minuteField.getDocument().a(chǎn)ddDocumentListener
(listener);
contentPane.a(chǎn)dd(panel,BorderLayout.S()UTH);
clock=new ClockPanel();
contentPane.a(chǎn)dd(clock,BorderLayout.CEN-
TER);
}
public void setClock()
{
try
{
int hours
=Integer.parseInt(hourField.getText().trim
()):
int minutes
=Integer.parseInt(minuteField.getText().trim
());
clock.setTime(hours,minutes);
}
catch(NumberFormatExcepfion e){}
}
public static final int DEFAULT_WIDTH=300;
public static final int DEFAULT_HEIGHT
=300;
private J TextField hourField;
private JTextField minuteField;
private ClockPanel clock;
private class clockFieldListener extends Docu-
mentListener
{
public void insertUpdate(DocumentEvent e){ set-
Clock();}
public void removeUpdate(DocumentEvent e){
setClock();}
public void changedUpdate(DocumentEvent e){}
}
}
class ClockPanel extends JPanel
{
pubhc void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphies2D g2=(Graphics2D)g;
Ellipse2D circle
=new Ellipse2D.Double(0,0,2* RADIUS,2
*RADIUS);
g2.draw(circle);
double hourAngle
=Math.toRadians(90-360*minutes/(12
*60));
drawHand(92,hourAngle,HOUR_HAND_
LENGTH);
double minuteAngle
=Math.toRadians(90-360*minutes/60);
drawHand(g2,minuteAngle,MINUTE_HAND_
LENGTH):
}
punic void drawHand(Graphics2D g2,
double angle,double handLength)
{
Point2D end=new Point2D.Double(
RADIUS+handLength*Math.cos(angle),
RADIUS-handLength*Math.sin(angle));
Point2D center=new Point2D.Double(RADIUS,
RADIUS):
g2.draw(new Line2D.Double(center,end));
}
public void setTime(int h,int m)
{
minutes=h*60+m;
repaint();
}
private double minutes=0;
private double RADIUS=100;
private double MINUTE_HAND_LENGTH=
0.8*RADIUS;
private double HOUR_HAND_LENGTH=0.6
*RADIUS:
}