问答题

本题的功能是用按钮来控制文字的颜色。窗口中有三个按钮“Yellow”、“Blue”和“Red”,它们分别对应文字标签中文本的颜色为黄色、蓝色和红色,单击任意一个按钮,文字标签中的文本就变成按钮对应的颜色。
import java.awt.*;
import java.awt.event.*;
import javflx.swing.*;
class ButtonPanel extends JPanel implements ActionL-
istener{
public ButtonPanel(){
yellowButton=new J Button("Yellow");
blueButton=new JButton("Blue");
redButton=new JButton("Red");
j1=new JLabel("I am from China!");
add(yellowButton);
add(blueButton);
add(redButton);
add(j1);
yellowButtofl.addActionListener(this);
blueButton.addActionListener(this);
redButton.addActionListener(this);
}
public void actionPerformed(ActionEvent evt){
0bject source=evt.getSource();
Color color=getForeground();
if(source= =yellowButton)color=Color.
yellow;
else if(source= =blueButton)color=Color.
blue;
else if(source= =redButton)color=
Color.red;


}
private JButton yellowButton;
private JButton blueButton;
private JButton redButton;
private JLabel jl;
}
class ButtonFrame extends JFrame{
public ButtonFrame(){
setTitle("exam l6");
setSize(300,200);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(O);
}
});
Container contentPane=getContentPane();
contentPane.add(new ButtonPanel());
}
}
public class java2{
public static void main(String[]args){
JFrame frame=new ButtonFrame();
frame.show(); }
}

【参考答案】

第1处:jl.setForeground(color)
第2处:jl.repaint()
【解析】在......

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

相关考题

判断题 如果一个人的智商为100,则可以认为他的智力水平非常优秀。( )

问答题 本题的功能是用按钮来控制文本框中文本的颜色。窗口中有两个带有文字标题的面板“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"); } }

问答题 本题的功能是展示4种不同的对话框。窗口中有4个按钮:“消息”、“输入”、“确定”和“选择”,单击任意一个按钮,就能弹出一个对应的对话框。其中,消息对话框只有一个提示信息和一个“确定’’按钮,输入对话框有一个供输入的文本框及“确定”和“撤销”两个按钮;确定对话框中有一个提示信息和三个按钮“是”、“否”和“撤销”;而选择对话框中有一个提示信息和两个按钮“确定,,和“取消”。 import javax.swin9.*: import java.awt.event.*; import java.awt.*; Public class java3 extends JFrame implements ButtonSelecte ActionListener { JButton btnMessage=new JButton("消息"); JButton btnlnput=new JButton("输入"); JButton btnConfirm=new JButton("确认"); JButton btnOption=new JButton("选择"); public java3() { super("java3"); btnMessage.addActionListener(this); btnlnput.addActionListener(this); btnConfirm.addActionListener(this); btnOption.addActionListener(this); getContentPane().setLayout( new FIowLavout ()): getContentPane().add(btnMessage); getContentPane().add(btnlnput): getContentPane().add(btnConfirm): getContentPane().add(btnOption); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); } public static void main(String args[]) { java3 fr=new java3(); fr.pack(); fr.setVisible(true); } Public void actionperformed(ActionEvent e) { Object[]opt={"确认","取消"); JButton instance:(JButton)e.getObject(); if(instance= =btnMessage) JOptionPane.showMessageDialog(this,"消息对话框"); else if(instance= =btnInput、 JOptionPane.showInputDialog(this,"输入对话框"); else if(instance= =btnConfirm、 JOptionPane.showConfirmDialog(this,"确认对话框"); else JOptionPane.showOptionDialog(this,"选择对话框","选择",JOptionPane.YES_OPTION,JOptionPane.QUESTION_MESSAGE,null,opt,opt[1]); } }