gpt4 book ai didi

java - 使用 Swing 将工具栏添加到框架

转载 作者:行者123 更新时间:2023-11-29 05:11:02 25 4
gpt4 key购买 nike

我正在尝试制作一个框架,并在页面开始处添加一个工具栏,在底部添加一个状态栏,以及一个可以显示内部框架的桌面。但我只是得到一个空框。我做错了什么?

谢谢。

public class AdminStart extends JFrame implements ActionListener{

private JToolBar toolBar;
private JDesktopPane desktop;
private StatusBar statusBar;
private JPanel panel;

//this is a class that i created and extends JToolBar
private ToolBarAdmin miToolBar;

private String ID = null;
private String type = null;
private String state = null;

public AdministradorInicio(String ID, String tipo, String estado){

super("Start");

setExtendedState(JFrame.MAXIMIZED_BOTH);
//setSize(JFrame.MAXIMIZED_HORIZ, JFrame.MAXIMIZED_VERT);
//setResizable(false);
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.ID = ID;
this.tipo = type;
this.estado = state;

toolBar = new JToolBar();
miToolBar = new ToolBarAdmin();
desktop = new JDesktopPane();
statusBar = new StatusBar();
panel = new JPanel();

for(int i = 0; i < miToolBar.toolBarTitles.length; i++){
miToolBar.boton[i].addActionListener(this);
}

panel.setLayout(new BorderLayout());

toolBar.setLayout(new FlowLayout(FlowLayout.LEFT));
toolBar.setFloatable(false);
toolBar.add(miToolBar);

desktop.setBackground(Color.DARK_GRAY);

panel.add(toolBar, BorderLayout.PAGE_START);
panel.add(desktop, BorderLayout.CENTER);
panel.add(statusBar, BorderLayout.PAGE_END);


add(panel);

setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {

}

public static void main(String[] args) {
new AdminStart("sdsd","sdsd","sdsd");
}

}

最佳答案

这伤害了你:

setLayout(null);

当使用null 布局时,您作为编码人员完全负责指定每个组件的位置和大小。您最终还会得到非常死板的 GUI,几乎无法维护或升级,而且可能在一个系统和屏幕分辨率上看起来不错,但在其他地方可能看起来很糟糕。此外,正如 MadProgrammer 所说,“像素完美布局是现代 UI 设计中的一种错觉。”解决方案,摆脱 setLayout(null) 并努力避免使用 null 布局。

关于java - 使用 Swing 将工具栏添加到框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28510663/

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