生活随笔
收集整理的這篇文章主要介紹了
Java监听器用法(三):外部类监听器
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
承接用法一,可以把實(shí)現(xiàn)接口的監(jiān)聽器類單獨(dú)放在外面,但是這時(shí)候有個(gè)問題,當(dāng)處理接口的方法要改變框架里組件的狀態(tài)時(shí),需要在構(gòu)建監(jiān)聽器是傳入這個(gè)組件的引用作為參數(shù)。
上例做如下修改:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ButtonFrame extends JFrame
{ private JPanel buttonPanel;
private static final int DEFAULT_WIDTH =
300;
private static final int DEFAULT_HEIGHT =
200;ColorListener yellowListener,blueListener, redListener;
public ButtonFrame(){ setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);JButton yellowButton =
new JButton(
"Yellow");JButton blueButton =
new JButton(
"Blue");JButton redButton =
new JButton(
"Red");buttonPanel =
new JPanel();buttonPanel.add(yellowButton);buttonPanel.add(blueButton);buttonPanel.add(redButton); add(buttonPanel);yellowListener =
new ColorListener(Color.YELLOW, buttonPanel);blueListener =
new ColorListener(Color.BLUE, buttonPanel);redListener =
new ColorListener(Color.RED, buttonPanel);yellowButton.addActionListener(yellowListener);blueButton.addActionListener(blueListener);redButton.addActionListener(redListener);}
}
class ColorListener implements ActionListener
{
private Color backgroundColor;
private JPanel panel;
public ColorListener(Color c,JPanel p) {backgroundColor = c;panel=p;}
public void actionPerformed(ActionEvent event) {panel.setBackground(backgroundColor);}
}
總結(jié)
以上是生活随笔為你收集整理的Java监听器用法(三):外部类监听器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。