Java 根据同一Jframe中另一个面板的Jbutton更改面板的JLabel

Java 根据同一Jframe中另一个面板的Jbutton更改面板的JLabel,java,swing,jpanel,jbutton,jlabel,Java,Swing,Jpanel,Jbutton,Jlabel,我已经为JPanel构建了一个包含多个JButton的类。在这个类中,我想构建另一个包含JLabel的JPanel,它将根据在第一个JPanel的JButton上执行的操作而变化。最后,我想在同一个Jframe上添加这两个面板。所有这些都可以在第一个面板的类中完成吗?否则,对于这个问题,哪种方法更好?是的,您可以。实现这一点的一种方法是使用匿名内部类来保存击键: import java.awt.BorderLayout; import java.awt.event.*; import javax

我已经为JPanel构建了一个包含多个JButton的类。在这个类中,我想构建另一个包含JLabel的JPanel,它将根据在第一个JPanel的JButton上执行的操作而变化。最后,我想在同一个Jframe上添加这两个面板。所有这些都可以在第一个面板的类中完成吗?否则,对于这个问题,哪种方法更好?

是的,您可以。实现这一点的一种方法是使用匿名内部类来保存击键:

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

public class Foo {
    JLabel one;
    JLabel two;

    public static void main(String[] args) {
        (new Foo()).go();
    }

    public void go() {
        JFrame frame = new JFrame("Test");

        // Panel with buttons
        JPanel buttonPanel = new JPanel();
        JButton changeOne = new JButton("Change One");
        changeOne.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent event) {
                one.setText("New text for one");
            }
        }
        buttonPanel.add(changeOne);
        JButton changeTwo = new JButton("Change Two");
        changeTwo.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent event) {
                two.setText("New text for two");
            }
        }
        buttonPanel.add(changeTwo);
        frame.add(buttonPanel, BorderLayout.NORTH);

        // Panel with labels
        JPanel labelPanel = new JLabel();
        one = new JLabel("One");
        labelPanel.add(one);
        two = new JLabel("Two");
        labelPanel.add(two);

        // Set up the frame
        frame.add(labelPanel, BorderLayout.SOUTH);
        frame.setBounds(50, 50, 500, 500);
        frame.setDefaultCloseAction(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

当然我不知道为什么这不起作用。因为我不知道你真正的问题在哪里,答案只是:是的,这可以在你的第一节课上完成是的,但问题是,你应该……谢谢大家。我只是好奇这些陈述的写作顺序。