gpt4 book ai didi

Java-双菜单栏-设置 'static'和 'void'参数

转载 作者:行者123 更新时间:2023-12-01 11:42:57 26 4
gpt4 key购买 nike

问题在于:

  1. paintUI()因为无法从 Gui 类型对非静态方法 PaintUI() 进行静态引用
  2. exitb.addActionListener。

AbstractButton 类型中的方法 addActionListener(ActionListener) 不适用于参数 (new ActionListener(){})

我该如何解决这个问题?

//imports..

public class Gui extends JFrame
{


public Gui() {
paintUI();
}

public final void paintUI()
{
createToolBars();
JFrame f=new JFrame();
//setting of 'f' ...
}


private void createToolBars() {

JToolBar toolbar1 = new JToolBar();
JToolBar toolbar2 = new JToolBar();

ImageIcon newi = new ImageIcon("new.png");
//another next icons..

JButton newb = new JButton(newi);
// another next jbuttons

toolbar1.add(newb);

这是 exitb.addActionListener 的问题,因为..:该行有多个标记 - ActionListener 无法解析为类型 - 类型中的addActionListener(ActionListener)方法 AbstractButton 不适用于参数 (new ActionListener(){})

        exitb.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent event) {
System.exit(0);
}

});
createLayout(toolbar1, toolbar2);
}

private void createLayout(JComponent... arg) {

Container pane = getContentPane();
//some creating....

gl.setHorizontalGroup(gl.createParallelGroup()
.addComponent(arg[0], GroupLayout.DEFAULT_SIZE,
GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(arg[1], GroupLayout.DEFAULT_SIZE,
GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);

gl.setVerticalGroup(gl.createSequentialGroup()
.addComponent(arg[0])
.addComponent(arg[1])
);
}

public static void main(String[] args)
{

SwingUtilities.invokeLater(new Runnable() {
public void run() {

/**这是“paintUI()”引用的问题,因为:无法从 Gui 类型对非静态方法 PaintUI() 进行静态引用*/

                paintUI(); 
}
});
}
} }

最佳答案

paintUI();//here is a problem with reference

您尚未创建 Gui 类的实例,因此无法调用该类的方法。

您应该使用:

new Gui();

您不需要调用paintUI(),因为 Gui 类的构造函数将为您执行此操作。

正如另一个答案所示,上述语句实际上应该从 SwingUtilities.invokeLater() 中调用,因为所有 GUI 组件都应该在事件调度线程 (EDT) 上创建。阅读 Swing 教程中关于 Concurrency 的部分。这是一个需要理解的重要概念。

关于Java-双菜单栏-设置 'static'和 'void'参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29372588/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com