我如何使我的按钮在其他班级中可见

问题描述

我正在编写简单的d&d骰子管理器进行练习,我想知道如何在自己的课堂之外访问我的按钮:

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

class Buttoner extends JPanel{
public JButton d4,d6,d8,d12,d20,d100;
Buttoner(){
    this.add(d4 = new JButton("d4"));
    this.add(d6 = new JButton("d6"));
    this.add(d8 = new JButton("d8"));
    this.add(d12 = new JButton("d12"));
    this.add(d20 = new JButton("d20"));
    this.add(d100 = new JButton("d100"));
}
}

class Framer extends JFrame {
Framer(){
    int DEFAULT_WIDTH = 200;
    int DEFAULT_HEIGHT = 140;
    this.setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
    this.setVisible(true);
    this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    this.setTitle("D&Dice");
    JButton display = new JButton("0");
    display.setEnabled(false);
    this.add(display,BorderLayout.NORTH);
}
}

public class DandDice extends Framer {
public static void main(String[] args)
{
    Buttoner panel = new Buttoner();
    panel.setLayout(new GridLayout(3,2));
    Framer ramka = new Framer();
   ramka.add(panel,BorderLayout.SOUTH);
}

}

例如,我想在DandDice类中访问d4

解决方法

与您的问题无关,但:

Buttoner panel = new Buttoner();
panel.setLayout(new GridLayout(3,2));

在将按钮添加到面板之前,应先设置面板的布局管理器。

该逻辑属于Buttoner类的构造函数。

我如何在自己的课堂之外访问我的按钮:

不确定为什么要这么做。

JFrame只是用于容纳子组件的容器。创建框架的类中不应包含任何应用程序逻辑。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...