有没有办法在JPanel上添加多个JButton和Menu Buttons。 我正在使用borderLayout,这似乎不起作用我已经尝试使用流布局,但这似乎将按钮堆叠在一个特定的方向。
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JButton;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
public class Menu extends JPanel {
private JMenuBar menuBar;
private JMenu file;
private JMenu algorithms;
private JMenu help;
private JMenu notes;
private JMenuItem bubbleSort;
private JMenuItem insertionSort;
private JMenuItem selectionSort;
private JMenuItem mergeSort;
private JMenuItem quickSort;
private JMenuItem exit;
private JButton restartButton;
private Sorter sorter;
private JButton pauseButton;
private JButton startButton;
public Menu(String algorithmName) {
setLayout(new BorderLayout());
menuBar = new JMenuBar();
file = new JMenu("File");
help = new JMenu("Help");
notes = new JMenu("Notes");
algorithms = new JMenu("Algorithms");
exit = new JMenuItem("Exit");
bubbleSort = new JMenuItem("BubbleSort");
quickSort = new JMenuItem("QuickSort");
insertionSort = new JMenuItem("InsertionSort");
selectionSort = new JMenuItem("SelectionSort");
mergeSort = new JMenuItem("MergeSort");
restartButton = new JButton("Restart Algorithm");
pauseButton = new JButton("Pause");
startButton = new JButton("Start");
file.add(algorithms);
file.add(exit);
algorithms.add(bubbleSort);
algorithms.add(insertionSort);
algorithms.add(selectionSort);
algorithms.add(mergeSort);
algorithms.add(quickSort);
menuBar.add(file);
menuBar.add(notes);
menuBar.add(help);
add(restartButton, BorderLayout.EAST);
add(pauseButton,BorderLayout.EAST);
add(startButton,BorderLayout.EAST);
add(menuBar,BorderLayout.WEST);
答案 0 :(得分:2)
您可以使用BorderLayout
将一个组件放到一个方向,似乎您需要选择其他LayoutManager
。似乎GridBagLayout
可以帮助你。
同样建议不要将JMenu
/ JMenuBar
/ JMenuItem
放置到JPanel
,您需要将JMenuBar
设置为JFrame
答案 1 :(得分:0)
尝试查看Swingdesigner。它将为您提供一个WYSIWYG界面,您可以使用它来研究代码。
了解如何在代码中执行此操作非常重要,但界面将有助于指导您。