我已经在Java中构建了一个小程序来从输入中获取结果。
它可以在控制台中运行,但是现在我希望它具有GUI,因为我正在使用swing JFrames。
这就是我要坚持的地方:我设法显示一个表单,并从我的主代码中创建它。
但是,然后我想使用简单的setter和getter随意操作这种形式。
我已经进行了设置,以更改表单面板的值,但是主代码无法识别该方法。
我对GUI还是很陌生,所以我打赌我只是缺乏使用Swing的正确逻辑,但是如果有人能发现我正在犯的重大错误,这就是我的代码,简而言之我坚持的最低要求:
注意:在这里,为了方便起见,我将主代码直接放入类中,但是我尝试将GUI类与主类分开,结果相同。
public class mainform {
public JPanel panel1;
private JLabel output;
public void setRes()
{
output.setText("hello");
}
public static void main(String[] args) throws IOException {
JFrame frame = new JFrame("mainform");
frame.setContentPane(new mainform().panel1);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
frame.setRes(); // HERE IS WHERE "setRes" won't be recognized as a method...
}
}
最佳答案
您声明frame为JFrame类型。而且编译器不在乎赋值的右侧。
对于编译器,frame是一个JFrame。而且JFrames没有该方法。因此,您必须将变量的类型更改为mainform。当然,为了使mainform成为JFrame,您必须使您的类成为框架:
class mainform extends JFrame
此外:请研究Java命名约定。类名总是使用UpperCase,因此“ TestFrame”可能是一个更好的名称。还要避免方法名称的“缩写”。然后“ setRes()”什么也没说。您最好将其称为“ placeTextOnPanel”或类似名称。