} }
4 在3题的基础上修改程序,使得按下按钮和鼠标经过按钮时,其图标有不同的效果。
解:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ch8_e8_16
{
public static void main(String args[])
{
new MyPrame();
}
}
class MyFrame extends Frame implements ActionListener
{
JButton myButton=new JButton(new ImageIcon(\;
MyFrame()
{
super(\我的窗口\;
myButton.setPressedIcon(new ImageIcon(\
myButton.setRolloverIcon(new ImageIcon(\
myButton.setRolloverEnabled(true);
add(\,myButton);
myButton.addActionListener(this);
addWindowListener(new closeWin());
setsize(300,200);
setVisible(true);
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==myButton)
{
setTitle(\单击按钮!\
}
}
}
class closeWin extends WindowAdapter
{
public void windowClosing(WindowEvent we)
{
we.getWindow().dispose();
Sysrem.exit(0);
} }
5 为4题中的按钮加入提示信息\。
解:
import javax.Swinig.*;
import java.awt.*;
import java.awt.event.*;
public class ch8_e8_17 extends JApplet implements ActionListener
{
JButton myButton=new JButton(new ImageIcon(\;
public void init()
{
myButton.setPressedIcon(new ImageIcon(\;
myButton.setRolloverIcon(new ImageIcon(\;
myButton.setRolloverEnabled(true);
myButton.setToolTipText(\;
getContentPane().add(\,myButton);
myButton.addActionListener(this);
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==myButton)
{
showStatus(\单击按钮!\
}
} }
6 JSlider与Scrollbar有何不同?编写Applet程序,包含3个JSlider和一个 JLabel对象。3个滚动条分别用来调整红、绿、蓝3种颜色的比例,每个JSlider标注0— 255的标尺刻度(可以自由确定刻度间隔)。当用户拖动滑块修改3色比例时,相应修改 JLabel的背景色。
解;JSlider和Scrollbar的功能大致相同,但是它们引发的事件名称不同,而且 JSlider增加了一些刻度显示功能。
源程序
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
public class ch8_e8_18 extends JApplet implements ChangeListener
{
JButtonmyButton=new JButton(\;
JSlider redSlider=new JSlider(JSlider.HORIZONTAL,0,255,204);
JSlider greenSlider=new JSlider(JSlider.HORIZONTAL,0,255,204);
JSlider blueSlider=new JSlider(JSlider.HORIZONTAL,0,255,204);
int value=0;
public void init()
{
Panel p=new Panel();
p.setLayout(new GridLayout(3,1));
p.add(redSlider);
p.add(greenSlider);
p.add(blueSlider);
redSlider.addChangeListener(this);
greenSlider.addChangeListener(this);
blueSlider.addChangeListener(this);
getContentPane().add(\,myButton);
getContentPane().add(\,p);
}
public void stateChanged(ChangeEvent ae)
{
Color oldColor=myButton.getBackground();
if(ae.getSource()==redSlider)
{
value=redSlider.getValue();
myButton.setBackground(newColor(value,
oldColor.getGreen(),oldColor.getBlue()));
}