Java インターフェイスに問題があります。メニューバーとツールバーをいくつかのラベルとテキストフィールドと一緒に表示したいのですが、gridbaglayout を使用するたびにラベルとテキストフィールドが表示されず、メニューバーとツールバーしか表示されません。この問題について私を助けてくれませんか、私はこの問題についてMr.G(google)を検索しましたが、私の問題の適切な解決策を見つけることができません.私はJavaの初心者であり、使用するプログラミング言語としてJavaが欲しいです私の次のプロジェクト。
ここに私のコードがあります:
package Forms;
import javax.swing.*;
import java.awt.*;
public class CompleteGridLayout {
static JFrame frame;
static JPanel panel, panelData;
static JMenuBar menuBar;
static JMenu menuFile, menuSetting, menuOption;
static JMenuItem itemNew, itemOpen, itemSave, itemPrint, itemOption, itemClose, itemView, itemReports;
static JToolBar toolBar;
static Icon iconMenu;
static JButton barSave, barEdit, barClear, barDelete;
static ButtonGroup group;
static JRadioButtonMenuItem subFont1, subFont2, subFont3, subFont4, subFont5;
static JCheckBoxMenuItem checkPrefer;
static JLabel label;
static JTextField textFirst, textMiddle, textLast;
static JCheckBox checkGender;
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable(){
public void run()
{
gui();
}
});
}
public static void gui()
{
frame = new JFrame("Complete GridBag Layout Interface");
//frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
panel = new JPanel();
panel.setLayout(new GridBagLayout());
frame.getContentPane().add(panel);
CompleteGridLayout myMenu = new CompleteGridLayout();
myMenu.MyMenuBar();
myMenu.MyToolBar();
GridBagConstraints bag = new GridBagConstraints();
bag.anchor = GridBagConstraints.CENTER;
bag.gridx = 0;
bag.gridy = 3;
panel.add(dataPanel(), bag);
frame.pack();
frame.setVisible(true);
}
public static JPanel dataPanel()
{
panelData = new JPanel();
label = new JLabel("First Name: ");
textFirst = new JTextField(10);
panelData.setLayout(new GridBagLayout());
GridBagConstraints bagData = new GridBagConstraints();
int i = 0;
bagData.gridx = 1;
bagData.gridy = i;
bagData.gridwidth = 2;
bagData.fill = GridBagConstraints.HORIZONTAL;
panelData.add(textFirst, bagData);
bagData.gridx = 0;
bagData.gridy = i;
bagData.gridwidth = 1;
bagData.fill = GridBagConstraints.NONE;
panelData.add(label, bagData);
i++;
return panelData;
}
public void MyToolBar()
{
toolBar = new JToolBar(JToolBar.HORIZONTAL);
frame.add(toolBar);
iconMenu = new ImageIcon(getClass().getResource("icons/save-bar.png"));
barSave = new JButton("Save", iconMenu);
toolBar.add(barSave);
iconMenu = new ImageIcon(getClass().getResource("icons/edit-bar.png"));
barEdit = new JButton("Edit", iconMenu);
toolBar.add(barEdit);
iconMenu = new ImageIcon(getClass().getResource("icons/clear-bar.png"));
barClear = new JButton("Clear", iconMenu);
toolBar.add(barClear);
iconMenu = new ImageIcon(getClass().getResource("icons/delete-bar.png"));
barDelete = new JButton("Delete", iconMenu);
toolBar.add(barDelete);
}
public void MyMenuBar()
{
menuBar = new JMenuBar();
frame.setJMenuBar(menuBar);
//Menus
menuFile = new JMenu("File");
menuBar.add(menuFile);
iconMenu = new ImageIcon(getClass().getResource("icons/new.png"));
itemNew = new JMenuItem("New", iconMenu);
menuFile.add(itemNew);
iconMenu = new ImageIcon(getClass().getResource("icons/open.png"));
itemOpen = new JMenuItem("Open", iconMenu);
menuFile.add(itemOpen);
iconMenu = new ImageIcon(getClass().getResource("icons/save.png"));
itemSave = new JMenuItem("Save", iconMenu);
menuFile.add(itemSave);
menuFile.addSeparator();
iconMenu = new ImageIcon(getClass().getResource("icons/print.png"));
itemPrint = new JMenuItem("Print", iconMenu);
menuFile.add(itemPrint);
menuFile.addSeparator();
menuSetting = new JMenu("Settings");
menuFile.add(menuSetting);
group = new ButtonGroup();
subFont1 = new JRadioButtonMenuItem("10 Pixel");
menuSetting.add(subFont1);
group.add(subFont1);
subFont2 = new JRadioButtonMenuItem("12 Pixel");
menuSetting.add(subFont2);
group.add(subFont2);
subFont3 = new JRadioButtonMenuItem("14 Pixel");
menuSetting.add(subFont3);
group.add(subFont3);
subFont4 = new JRadioButtonMenuItem("16 Pixel");
menuSetting.add(subFont4);
group.add(subFont4);
subFont5 = new JRadioButtonMenuItem("24 Pixel");
menuSetting.add(subFont5);
group.add(subFont5);
menuSetting.addSeparator();
checkPrefer = new JCheckBoxMenuItem("Preference");
menuSetting.add(checkPrefer);
group.add(checkPrefer);
iconMenu = new ImageIcon(getClass().getResource("icons/close.png"));
itemClose = new JMenuItem("Close", iconMenu);
menuFile.add(itemClose);
menuOption = new JMenu("Option");
menuBar.add(menuOption);
iconMenu = new ImageIcon(getClass().getResource("icons/view.png"));
itemView = new JMenuItem("View Users", iconMenu);
menuOption.add(itemView);
iconMenu = new ImageIcon(getClass().getResource("icons/report.png"));
itemReports = new JMenuItem("Reports", iconMenu);
menuOption.add(itemReports);
}
}
ところで、私はテスト目的でのみラベルとテキストフィールドを 1 つだけ使用しました。