java 继承 三小一大_请教:国家二级(JAVA)笔试模拟试卷24第1大题第3小题如何解答?...

本题的功能是用按钮来控制文本框中文本的颜色。窗口中有两个带有文字标题的面板“Sample text”和“Text color control”,窗口的底部还有一个复选按钮“Disable changes”。在“Sample text”面板中有一个带有字符串的文本框,而在“Text color control”面板中有三个按钮:“Black”、“Red”和“Green”,并且每个按钮上都有一个对应颜色的圆。单击任意按钮,文本框中的文本变成对应的颜色,如果选中“Disable changes”复选项,则三个颜色按钮变为不可用,如果取消选中复选项,则三个按钮变为可用。

import javax.swing.*;

import java.awt.*;

import java.awt.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.add(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.addActionListener( new ButtonListener

(Color.black));

middle.add(black);

red=new JButton("Red",new ColorIcon(Col-

or.red));

red.addActionListener(new ButtonListener(Col-

or.red));

middle.add(red);

green=new JButton("Green",new ColorIcon

(Color.green));

green.addActionListener(new ButtonListener

(Color.green));

middle.add(green);

lower=new JPanel();

lower.setLayout(new FlowLayout(FlowLayout.

RIGHT));

disable=new JCheckBox("Disable changes"):

disable.addItemListener(new ItemListener()(

public void itemStateChanged(ItemEvent e){

boolean enabled

=(e.getStateChange()

= =ItemEvent.DESELECTED):

black.setEnabled(enabled);

red.setEnabled(enabled);

green.setEnabled(enabled);

}

}

);

lower.add(disable);

Container cp=getContentPane();

cp.add(upper,BorderLayout.NORTH);

cp.add(middle,BorderLayout.CENTER);

cp.add(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个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值