0

我正在学习 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);

阅读文档我知道:

边界布局布置了一个容器,对其组件进行排列和调整大小以适应五个区域:北、南、东、西和中心

我的疑问是:BorderLayout它所指的对象是谁?在外部JFrame容器中?

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

4

1 回答 1

1

您将工具栏放在ToolBar名为 的实例的 NORTH 位置ex

您的ToolBar课程扩展了JFrame. 该add方法由ToolBarfrom继承JFrame。在您main调用ToolBar构造函数中,它会创建一个新实例ToolBar并保存对ex. 它还调用oninitUI方法ex,该方法调用addon ex

于 2013-09-27T14:37:37.400 回答