java swing类之间监听问题
PHPz
PHPz 2017-04-18 09:48:29
0
1
756

两个类,分别的两个jpanel,一个panel为jlist监听,一个里边是button,想实现jlist 触发按钮的状态改变,大概的思路是什么?

PHPz
PHPz

学习是最好的投资!

répondre à tous(1)
PHPzhong

Si deux JPanels sont instanciés dans un JWindow/JFrame, le bouton et la liste peuvent définitivement accéder l'un à l'autre.

S'ils sont hérités séparément, ajoutez simplement une interface ou créez un proxy dans le JPanel où se trouve le bouton. J'ai écrit un mot pour toi

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class MyPanel extends JPanel {
    JButton button;

    public MyPanel() {
        button = new JButton("Add To List");
    }

    // 方法二,直接把 button 暴露出来
    public JButton getButton() {
        return button;
    }

    // 方法一,做个 button.addActionListner 的代理
    public void addButtonListener(ActionListener listener) {
        button.addActionListener(listener);
    }
}

class ListPanel extends JPanel {
    public void addToList(String item) {
        // TODO
    }
}

public class Test {
    MyPanel myPanel;
    ListPanel listPanel;

    // ....

    void setupEvents() {
        // 方法一实现
        myPanel.addButtonListener(e -> {
            listPanel.addToList("hello");
        });

        // 方法二实现
        myPanel.getButton().addActionListener(e -> {
            listPanel.addToList("world");
        });
    }
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!