我的java接口有問題,我想顯示一個菜單欄和工具欄以及一些標籤和文本框,但是每次使用gridbaglayout時都沒有顯示我的標籤作爲我的文本字段,它只顯示我的菜單欄和工具欄可以幫助我與這一個,我搜索先生(谷歌)關於這個問題,但無法找到一個體面的解決方案與我的問題,我只是新手在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);
}
}
通過我只用一個標籤的方式和文本字段僅用於測試目的。
*「我的Java界面有問題」,*換檔鍵似乎也有問題。如果沒有,請在每個句子的開始處使用它,如「I」和課程名稱等。這樣可以使文本更易於閱讀。你不會想讓它變得更難以幫助我們,對吧? –
對不起,對於語法我總是忘記大寫每個第一個字母。 – Zyrax
您可以使用'UIManager'中的圖標使您的示例自成一體,如[此處](http://stackoverflow.com/a/7935040/230513)所示。 – trashgod