gpt4 book ai didi

java - 尝试使用 Java.swing 创建一个 MenuBar,并创建一个 JMenu() 对象,但它不允许我将其添加到框架中,不知道为什么?

转载 作者:行者123 更新时间:2023-12-02 09:15:22 30 4
gpt4 key购买 nike

public class Menu  {

private JMenu borders;

//constructor
public Menu()
{

//crate object
//this.menuBar = new JMenuBar();

//------create menu items----

//menu item for borders
borders = new JMenu("Border");

// add border options
borders.setMnemonic(KeyEvent.VK_U);

//add border options
borders.add(new JMenuItem("Etched"));
borders.add(new JMenuItem("Raised"));
borders.add(new JMenuItem("Matte"));
borders.add(new JMenuItem("Tilted"));
borders.add(new JMenuItem("Compounded"));

JMenuItem quit = new JMenuItem("Quit");
quit.setMnemonic(KeyEvent.VK_Q);

borders.add(quit);

//set Accelerator
quit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, Event.CTRL_MASK));

//add action listener
//@Override
quit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}

});


}

}

public class DrawingFrame extends JFrame{
protected CanvasEditor canvasEditor;
protected DrawingCanvas drawingCanvas;
private Menu menu;



public DrawingFrame()
{
this.setTitle("Drawing Application");
this.setDefaultCloseOperation(EXIT_ON_CLOSE);

drawingCanvas = new DrawingCanvas();
drawingCanvas.setMinimumSize(new Dimension(300,700));
this.add(drawingCanvas);

JPanel toolBarPanel = getToolBarPanel();

this.add(drawingCanvas,BorderLayout.CENTER);

this.add(toolBarPanel,BorderLayout.SOUTH);

//create menu from class
this.menu = new Menu();

//create menu bar
JMenuBar menuBar = new JMenuBar();

//add menu to menuBar
menuBar.add(menu);
<小时/>
error: cannot resolve method 'add'

不确定为什么它不接受add方法

drawingFrame 类接受来自 canvasEditorDrawingCanvas 的对象,但不接受来自 Menu 类的对象.

我想创建一个menuBar并为其添加一个菜单,然后将其放在同一个框架上——绘制Frame

很确定这是一个简单的修复,但不确定如何修复它

最佳答案

public class Menu  {
private JMenu borders;

您创建一个名为 Menu 的类,并在该类中创建 JMenu 的实例。

    this.menu = new Menu();

//create menu bar
JMenuBar menuBar = new JMenuBar();

//add menu to menuBar
menuBar.add(menu);

然后,您创建 Menu 类的实例并尝试将其添加到 JMenuBar,但这是无法完成的,因为 Menu 类不是 组件

相反,您想要将 borders 变量添加到菜单栏。

这意味着您需要在 Menu 类中创建一个方法,例如:

public JMenu getJMenu()
{
return borders;
}

然后你使用:

//menuBar.add(menu);
menuBar.add( menu.getJMenu() );

关于java - 尝试使用 Java.swing 创建一个 MenuBar,并创建一个 JMenu() 对象,但它不允许我将其添加到框架中,不知道为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59040096/

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