gpt4 book ai didi

java - 有关 BorderLayout 对象使用的一些疑问

转载 作者:行者123 更新时间:2023-12-01 14:04:17 25 4
gpt4 key购买 nike

我正在学习 Java Swing,并且对 BorderLayout 对象的使用有疑问。

我有一个创建工具栏的简单示例程序:

package com.andrea.menu;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JToolBar;
import javax.swing.SwingUtilities;

public class ToolBar extends JFrame {

public ToolBar() {
initUI();
}

public final void initUI() {

JMenuBar menubar = new JMenuBar(); // The menu bar containing the main menu voices
JMenu file = new JMenu("File"); // Creo un menu a tendina con etichetta "File" e lo aggiungo
menubar.add(file);

setJMenuBar(menubar); // Sets the menubar for this frame.

JToolBar toolbar = new JToolBar();

ImageIcon icon = new ImageIcon(getClass().getResource("exit.png"));

JButton exitButton = new JButton(icon);
toolbar.add(exitButton);
exitButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
System.exit(0);
}

});

add(toolbar, BorderLayout.NORTH);

setTitle("Simple toolbar");
setSize(300, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
ToolBar ex = new ToolBar();
ex.setVisible(true);
}
});
}
}

因此它通过以下行创建一个 JToolBar 对象:

JToolBar toolbar = new JToolBar();

然后将其放置在 BorderLayout 对象的 NORTH 位置,如下所示:

add(toolbar, BorderLayout.NORTH);

阅读文档我知道:

A border layout lays out a container, arranging and resizing its components to fit in five regions: north, south, east, west, and center

我的疑问是:它引用的BorderLayout对象?在外部 JFrame 容器中?

这意味着它将工具栏对象放在我的JFrame的北位置?或者什么?

最佳答案

您将工具栏放在名为 exToolBar 实例的北部位置。

您的ToolBar类扩展了JFrameadd 方法是 ToolBarJFrame 继承的。在 main 中,您调用 ToolBar 构造函数,该构造函数创建 ToolBar 的新实例,并将引用保存到 ex。它还调用 ex 上的 initUI 方法,该方法又调用 ex 上的 add

关于java - 有关 BorderLayout 对象使用的一些疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19053142/

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