【发布时间】:2018-12-30 19:31:51
【问题描述】:
我正在创建一个迷宫生成器,它会根据用户想要的行数/列数随机生成一个迷宫。我只能通过每次生成迷宫而不是更改现有框架时创建一个新的JFrame 来完成这项工作。
我尝试在主目录中创建一个JFrame,然后使用它来更改大小,我尝试将其公开并在按钮内进行更改。
Frame() 类
public class Frame extends JFrame {
private VariableDetails vDetails;
private MazeArea mArea;
private int width;
private int height;
public Frame(String title) {
super(title);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
width = 500;
height = 500;
setSize(width,height);
setLayout(new BorderLayout());
mArea = new MazeArea();
vDetails = new VariableDetails();
Container c = getContentPane();
c.add(mArea, BorderLayout.CENTER);
c.add(vDetails, BorderLayout.EAST);
}
public void setSize2(int width, int height) {
setSize(width,height);
}
VariableDetails() 类
public class VariableDetails extends JPanel {
public VariableDetails() {
JButton genBtn = new JButton("Generate");
genBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
setSize2(UserInputWidth,UserInputHeight);
}
});
}
在VariableDetails() 我有 2 个JTextFields 捕获用户输入的迷宫高度和宽度。
【问题讨论】:
-
到底是什么失败了?你能分享你的IDE给你的错误吗?只是在黑暗中开枪,但您是说您在从另一个类调用“setSize”方法时遇到问题?
-
这里没有扩展
JFrame或JPanel的情况。只需使用标准(非扩展)组件并根据需要填充它们。类的扩展在很大程度上导致了按钮没有参考框架的问题。一般提示: 1) 为了尽快获得更好的帮助,edit 添加minimal reproducible example 或Short, Self Contained, Correct Example。 2) 请学习常见的 Java 命名法(命名约定 - 例如EachWordUpperCaseClass、firstWordLowerCaseMethod()、firstWordLowerCaseAttribute,除非它是UPPER_CASE_CONSTANT)并始终如一地使用它。 -
目前它会生成一个具有所需大小的新框架,而不是仅仅将大小更改为所需的大小。
-
“目前是..” 你在回复谁?提示:添加@TerryDorsey(或重要的
@)以通知此人有新评论。顺便说一句 - 我们什么时候可以看到 SSCCE / MCVE?