Как получить класс, который содержит все элементы пользовательского интерфейса для JFrame? - PullRequest
0 голосов
/ 13 апреля 2020

поэтому у меня есть два класса, один из которых предназначен для создания JFrame, а другой - для загрузки строки меню на JFrame, код выглядит так:

import java.awt.Toolkit;
import javax.swing.JFrame;
import java.awt.Dimension;

import javax.swing.ImageIcon;
public class Main extends JFrame{
       static JFrame F = new Main();
static UI ui = new UI();
public Main()
{
    ImageIcon img = new ImageIcon("icon.png");
    setTitle("JFrame title");
    setJMenuBar(ui);
    setUndecorated(true);       
    //maximize window
    setExtendedState(getExtendedState() | MAXIMIZED_BOTH);
    setVisible(true);
    setIconImage(img.getImage());
}   
public static void main(String[] args)
{
}

}, а затем код пользовательского интерфейса:

import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
public class UI extends JMenuBar{

JMenu menu  = new JMenu("File");
JMenuItem i1,i2;

public UI() {
i1 = new JMenuItem("Save");
i2 = new JMenuItem("Load");
menu.add(i1);
menu.add(i2);
add(menu);
}

public static void main (String[] args) {

    }
}

Когда я скомпилировал, ошибок не было, я запустил код, и у меня был только JFrame, и никаких ошибок я не сделал

1 Ответ

0 голосов
/ 13 апреля 2020

Пользовательский интерфейс по-прежнему не инициализируется при вызове в setJMenuBar.

public class Main extends JFrame {
    static JFrame F = new Main();

    public Main() {
        UI ui = new UI();
        ImageIcon img = new ImageIcon("icon.png");
        setTitle("JFrame title");
        setJMenuBar(ui);
        setUndecorated(true);
        //maximize window
        setExtendedState(getExtendedState() | MAXIMIZED_BOTH);
        setVisible(true);
        setIconImage(img.getImage());
    }

    public static void main(String[] args) {
    }
}
...