1

私はJavaにかなり慣れていないので、質問を複雑にしすぎないことを願っています。

基本的に、2 つの JToolbar を垂直に重ねて、ボーダー レイアウトの北のコンテナーに追加しようとしています。ただし、ボーダーレイアウト内の単一の位置コンテナーに複数の JToolbar を追加できるとは思わないため、これに対する私の可能な解決策は、ボーダーレイアウト内にボーダーレイアウトを埋め込み、1 つを北に、もう 1 つを北に配置することだと思いました。センターですが、これを達成する方法がわかりません。これを達成するための最善の解決策についてアドバイスをいただければ幸いです。

以下は私のプログラムのソースコードです。私のプログラムを実行する目的で、「バー」JToolbar の下にも配置したい 2 番目の JToolbar を南のコンテナに配置しました。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class FeedBar2 extends JFrame {

public FeedBar2() {
    super("FeedBar 2");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    // create icons
    ImageIcon loadIcon = new ImageIcon("load.gif");
    ImageIcon saveIcon = new ImageIcon("save.gif");
    ImageIcon subscribeIcon = new ImageIcon("subscribe.gif");
    ImageIcon unsubscribeIcon = new ImageIcon("unsubscribe.gif");
    // create buttons
    JButton load = new JButton("Load", loadIcon);
    JButton save = new JButton("Save", saveIcon);
    JButton subscribe = new JButton("Subscribe", subscribeIcon);
    JButton unsubscribe = new JButton("Unsubscribe", unsubscribeIcon);

    //create help buttons
    JButton help = new JButton("Help");
    JButton about = new JButton("About");
    JButton contact = new JButton("Contact Us");

    // add buttons to toolbar
    JToolBar bar = new JToolBar();
    bar.add(load);
    bar.add(save);
    bar.add(subscribe);
    bar.add(unsubscribe);

    //add buttons to help toolbar
    JToolBar helpbar = new JToolBar();
    helpbar.add(help);
    helpbar.add(about);
    helpbar.add(contact);

    // create dropdown menu
    JMenuItem j1 = new JMenuItem("Load");
    JMenuItem j2 = new JMenuItem("Save");
    JMenuItem j3 = new JMenuItem("Subscribe");
    JMenuItem j4 = new JMenuItem("Unsubscribe");
    JMenuItem h1 = new JMenuItem("Help");
    JMenuItem h2 = new JMenuItem("About");
    JMenuItem h3 = new JMenuItem("Contact Us");
    JMenuBar menubar = new JMenuBar();
    JMenuBar helpmenubar = new JMenuBar();
    JMenu menu = new JMenu("Feeds");
    menu.add(j1);
    menu.add(j2);
    menu.addSeparator();
    menu.add(j3);
    menu.add(j4);


    JMenu helpmenu = new JMenu("Help");
    helpmenu.add(h1);
    helpmenu.add(h2);
    helpmenu.add(h3);
    menubar.add(menu);
    menubar.add(helpmenu);

    // prepare user interface
    JTextArea edit = new JTextArea(8, 40);

    JScrollPane scroll = new JScrollPane(edit);

   BorderLayout bord = new BorderLayout();


   //Looking for the "help bar" to be vertically placed under the "bar" 
   //toolbar.

    setLayout(bord); 
    add("North", bar);
    add("Center", scroll);
    add("South", helpbar);

    setJMenuBar(menubar);



    pack();
    setVisible(true);
}

public static void main(String[] arguments) {
    FeedBar2 frame = new FeedBar2();
}
4

2 に答える 2

1

私はGridLayoutを使用します:

//setLayout(bord); // the default layout of a frame is a BorderLayout
//add("North", bar); // don't use String literals, the API has variables for you to use
//add("Center", scroll);
//add("South", helpbar);


JPanel toolbars = new JPanel( new GridLayout(0, 1) );
toolbars.add(bar);
toolbars.add(helpBar);

add(toolBars, BorderLayout.NORTH)
add(scroll, BorderLayout.CENTER);
于 2013-11-15T01:15:59.173 に答える