第 1 页:基本操作、简单应用 |
第 2 页:综合应用 |
第 3 页:参考答案 |
三、综合应用题
本题的功能是用按钮来控制文本框中文本的颜色。窗口中有两个带有文字标题的面板“Sample text”和“Text col—or control”,窗口的底部还有一个复选按钮“Disable chan-ges”。在“Sample text”面板中有一个带有宇符串的文本框,而在“Text color control”面板中有三个按钮“Black”、“Red”和“Green”,并且每个按钮上都有一个对应颜色的圆。单击任意按钮,文本框的文本变成对应的颜色,如果选中“Disa-ble 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 ColorIeon(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.addhemListener(new hemListener(){
public void itemStateChanged(hemEvent 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);
ep.add(middle,BorderLayout.CENTER);
ep.add(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");
}
}
编辑推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |