我有这个GUI,它完美地工作但是现在我想添加一个工具栏,它将有一个"文件"按钮将有两个选项,即退出和关于。退出应该关闭GUI,而关于应该给出另一个包含有关赋值的字符串的JFrame框。出于某种原因,当我运行程序时,我无法让我的JMenubar出现在那里。我可以输入一些东西,让我知道一个单词或一个字符串是否是回文,但没有运气工具栏。我应该如何实现它,以便我的工具栏显示" file"按钮下面有两个选项?对于GUI而言,我不是很好,所以如果你引导我完成这一点,我会很高兴。 谢谢 这是我的代码
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Owner
*/
public class PalindromGUI extends JFrame {
private JTextField TextField;
private JTextArea textArea;
private JMenuBar menubar;
private JMenuItem exit;
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
PalindromGUI gui = new PalindromGUI();
gui.setVisible(true);
}
public PalindromGUI() {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(50,50,90,650);
//Create a panel and add components to it.
JPanel contentPane = new JPanel();
BorderLayout experimentLayout = new BorderLayout();
contentPane.setLayout(experimentLayout);
contentPane.setPreferredSize(new Dimension(800, 500));
TextField = new JTextField();
TextField.setForeground(new Color(0, 0, 0));
TextField.setOpaque(true);
TextField.setBackground(new Color(255, 255, 255));
TextField.setFont(new Font("Verdana", Font.PLAIN, 30));
TextField.setMargin(new Insets(20, 20, 20, 20));//add margin 30
TextField.setText("Enter a word to see if it is a palindrome");
TextField.setEditable(false);
//toolbar
menubar = new JMenuBar();
setJMenuBar(menubar);
exit = new JMenuItem();
// exit.addActionListener(new exitApp());
contentPane.add(exit);
// menubar.setForeground(new Color(0, 0, 0));
// menubar.setOpaque(true);
// menubar.setBackground(new Color(255, 255, 255));
// menubar.setFont(new Font("Verdana", Font.PLAIN, 40));
// menubar.setMargin(new Insets(20, 20, 20, 20));
//
textArea = new JTextArea();
textArea.setForeground(new Color(0, 0, 0));
textArea.setOpaque(true);
textArea.setBackground(new Color(255, 255, 255));
textArea.setFont(new Font("Verdana", Font.PLAIN, 40));
textArea.setMargin(new Insets(20, 20, 20, 20));//add margin 30
JButton enter = new JButton();
enter.setText("GO");
enter.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
String pal = textArea.getText();
String temp = pal.replaceAll("\\W", "");
Palindrome myPalindrome = new Palindrome(temp);
if (myPalindrome.isPalindrome()) {
TextField.setText(pal + " is a palindrome");
} else {
TextField.setText(pal + " is not a palindrome");
}
textArea.setText("");
}
});
contentPane.add(enter, BorderLayout.EAST);
contentPane.add(textArea, BorderLayout.SOUTH);
contentPane.add(TextField, BorderLayout.CENTER);
contentPane.add(menubar, BorderLayout.PAGE_START);
setContentPane(contentPane);
// this.add(contentPane);
this.pack();
this.setVisible(true);
}
}
答案 0 :(得分:1)
menubar = new JMenuBar();
setJMenuBar(menubar);
exit = new JMenuItem();
您不会向菜单栏添加任何内容。您需要创建一个JMenu并将其添加到菜单栏。然后,您需要将menuitem添加到菜单中。
阅读How to Use Menus上Swing教程中的部分,了解更多信息和工作示例。
答案 1 :(得分:1)
该技术是创建包含JMenu的JMenuBar,而JMenu又包含JMenuItem,例如:
//toolbar
JMenu fileMenu = new JMenu("File");
exit = new JMenuItem("Exit");
fileMenu.add(new JMenuItem("About"));
fileMenu.add(exit);
menubar = new JMenuBar();
menubar.add(fileMenu);
setJMenuBar(menubar);