【说明】 本程序通过移动滑动条修改颜色RGB值,从而控制颜色。程序中有一个面板、3个标签和3个滑动条,标签和滑动条一一对应,分别对应三原色红、绿、蓝,任意拖动其中的一个滑动条,所对应的颜色值就会发生变化,面板的颜色也会发生对应的变化,如下图所示,滑动条值的范围是0~255。
【Java代码】 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class simple extends JFrame implements AdjustmentListener{ public simple(){ setTitle("simple"); setSize(300, 200); addWindowListener(new WindowAdapter(){ public void windowClosing( (1) ){ System.exit(0); } }); Container contentPane=getContentPane(); JPanel p= (2) ; p.setLayout(new GridLayout(3, 2)); p.add(redLabel=new JLabel("Red 0")); p.add(red=new JScrollBar(Adjustable. HORIZONTAL, 0, 0, 0, 255)); red.setBlocklncrement(16); red.addAdjustmentListener(this); p.add(greenLabel= (3) ("Green 0")); p.add(green=new JScrollBar(Adjustable.HORIZONTAL 0, 0, 0, 255)); green setBIocklncrement(16); green.addAdjustmentListener(this); p.add(blueLabel=new JLabel("Blue 0")); p.add(btue=new JScrollBar(Adjustable. HORIZONTAL, 0, 0, 0, 255)); blue,setBIocklncrement(16); blue.addAdjustmentListener(this); contentPane.add(p, "South"); colorPanet=new JPanel(); colorPanet.setBackground(new Color(0, 0, 0)); contentPane.add( (4) ,"Center"); }public void adjustmentValueChanged(AdjustmentEvent evt){ redLabel.setText("Red"+red.getValue()); greenLabel.setText("Green"+green.getValue()); blueLabel.setText("Blue"+blue.getValue()); coiorPanel.setBackground(new Color(red.getValue(), green.getValue(), blue.getValue())); colorPanel.repaint(); } public static void main(String[] args){ JFrame f= (5) ; f.show(); } private JLabel redLabel; private JLabel greenLabel; private JLabel blueLabel; private JScrollBar red; private JScroilBar green; private JScrollBar blue; private JPanel colorPanel;
参考答案:
解析:(1)WindowEvent e (2)new JPanel() (3)new JLabel (4)colorPanel (5)new simple()
[分析]: 本题考查在Java中实现对面板颜色的控制。 题目要求三原色红、绿、蓝,通过任意拖动其对应的一个滑动条来改变,而面板的颜色也会发生对应的变化。这需要我们了解Java中对滑动条和颜色进行定义的类。下面我们来分析程序。 第(1)空在类simple的构造函数中,这个类是继承JFrame这个框架类的,这个构造函数的作用是创建一个框架。很明显此空是函数windowClosing()的参数,而这个函数的作用我们不难看出是关闭框架用的,其参数是WindowEvent e,因此,此空答案就为 WindowEvent e。 第(2)空是给JPanel类型的变量p赋一个值,JPanel类型是控制板类型,在程序上面申请了一个容器,此空应该是在容器中创建一个控制板,而Java中一般用关键字new来创建对象,因此,此空答案为new JPanel()。 第(3)空是给变量greenLabel赋一个初值,从程序中我们不难看出greenLabel是一个标签类型的变量,且其中存放的是绿色的值。结合程序中上下红和蓝的处理我们也不难推断出此空的答案为new JLabel。 第(4)空是容器对象contentPane的add()函数的参数,这个函数的作用是往其对象中增加内容,其第一个参数是要添加的对象,第二个参数是添加的位置,从程序中不难看出应该添加对象colorPanel,这是界面中下面的板块。因此,此空答案为colorPanel。 第(5)空是给JFrame类型的变量f赋一个值,而JFrame是框架类simple的父类,那么变量f应该是一个框架对象,关键字new一般用来创建一个新的对象,因此,此空答案为new simple()。