问答题

本题的功能是用按钮来控制文本框中文本的颜色。窗口中有两个带有文字标题的面板“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(title Text);
addWindowListener(new WindowAdapter()
public void
windowClosing(WindowEvent e)
System.exit(0);


);
upper=new JPanel();
upper.setBorder(BorderFactory.createTitledBorder("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.createTitledBorder("Text color control"));
middle.setLayout(new FlowLayout(FlowLayout.CENTER));
black=new JButton("Black",new Colorlcon(Color.black));
black.addActionListener(new ButtonListener(Color.black));
middle.add(black);
red=new JButton("Red",new Colorlcon(Color.red));
red.addActionListener(new ButtonListener(Color.red));
middle.add(red);
green=new JButton("Green",new Colorlcon(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(lower,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 paintIcon(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 getIconHeight()
return DIAMETER;

public int getlconWidth()
return DIAMETER;


public static void main(String[]args)
new java3("advance");

【参考答案】

第1处:upper.setLayout(new BorderLayout())
第2处:class Butto......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
热门 试题

问答题
本题是一个Applet,页面上有一个按钮“请单击”,单击该按钮后弹出一个对话框,对话框上有三个按钮“橙色”、“蓝色”和“红色”,单击其中任意一个按钮,则可以将对话框的背景色设置为按钮名称所对应的颜色。 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class java2 extends JApplet private JFrame frame; ______() frame=new JFrame(); frame.setTitle( java2 ); frame.setSize(300,200); frame.getContentPane().add(new ButtonPanel()); JButton PopButton=new JButton( 请单击 ); getContentPane().add(PopButton); PopButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent evt) if(frame.isVisible())frame.setVisible(false); else______; ); class ButtonPanel extends JPanel private class ColorAction implements ActionListener private Color backgroundColor; public void actionPerformed(ActionEvent actionevent) setBackground(backgrOundColor); repaint(); public ColorAction(Color color) backgroundColor=color; public ButtonPanel() JButton jbutton=new JButton( 橙色 ); JButton jbutton1=new JButton( 蓝色 ); JButton jbutton2=new JButton( 红色 ); add(jbutton); add(jbutton1); add(jbutton2); ColorAction coloraction=new ColorAction(Color.orange); ColorAction coloraction1=new ColorAction(Color.blue); ColorAction coloraction2=new ColorAction(Color.red); jbutton.addActionListener(coloraction); jbutton1.addActionListener(coloraction1); jbutton2.addActionListener(coloraction2);