在使用Java界面開發(fā)時(shí),我們需要注意如何將界面和代碼進(jìn)行交互。以下是幾種常見的交互方式:
1. 使用事件監(jiān)聽器
//創(chuàng)建按鈕 JButton button = new JButton("點(diǎn)擊"); //添加事件監(jiān)聽器 button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //按鈕點(diǎn)擊時(shí)執(zhí)行的代碼 } });
通過上面的代碼,我們可以為按鈕添加一個(gè)事件監(jiān)聽器,在按鈕被點(diǎn)擊時(shí)執(zhí)行對(duì)應(yīng)的代碼塊。
2. 使用回調(diào)函數(shù)
//定義一個(gè)接口 interface Callback { //回調(diào)函數(shù) void call(); } //創(chuàng)建一個(gè)回調(diào)函數(shù)對(duì)象 Callback callback = new Callback() { public void call() { //回調(diào)函數(shù)執(zhí)行的代碼 } }; //創(chuàng)建按鈕 JButton button = new JButton("點(diǎn)擊"); //添加事件監(jiān)聽器 button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //調(diào)用回調(diào)函數(shù) callback.call(); } });
使用回調(diào)函數(shù)可以將代碼和界面解耦,提高代碼的復(fù)用性。
3. 使用觀察者模式
//定義一個(gè)觀察者接口 interface Observer { //更新方法 void update(); } //創(chuàng)建一個(gè)主題類 class Subject { //觀察者列表 private Listobservers = new ArrayList<>(); //注冊觀察者 public void attach(Observer observer) { observers.add(observer); } //通知所有觀察者 public void notifyObservers() { for(Observer observer : observers) { observer.update(); } } } //創(chuàng)建一個(gè)觀察者類 class ObserverA implements Observer { public void update() { //觀察者A執(zhí)行的代碼 } } //創(chuàng)建一個(gè)觀察者類 class ObserverB implements Observer { public void update() { //觀察者B執(zhí)行的代碼 } } //創(chuàng)建主題和觀察者 Subject subject = new Subject(); ObserverA observerA = new ObserverA(); ObserverB observerB = new ObserverB(); //將觀察者注冊到主題中 subject.attach(observerA); subject.attach(observerB); //創(chuàng)建按鈕 JButton button = new JButton("點(diǎn)擊"); //添加事件監(jiān)聽器 button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //通知所有觀察者 subject.notifyObservers(); } });
使用觀察者模式可以在代碼和界面之間建立一種松耦合的關(guān)系,減少代碼的耦合度。