Fixel
May 15th, 2009, 02:09 PM
New, and terrible, at GUI programming.
What I want is for the mMenu frame to close when the user clicks one of the buttons and (eventually build a new frame but for now just) open a JOptionPane message dialog.
/*
* MainMenu.java
*
* Copyright 2009 Felix Mulder <felix.mulder@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MainMenu {
public static void main (String args[]) {
try{
UIManager.setLookAndFeel(new com.sun.java.swing.plaf.gtk.GTKLookAndFeel());
} catch(Exception ex){ ex.printStackTrace(); }
mainMenu mMenu = new mainMenu();
mMenu.frame = new JFrame("Benkyou-kun");
mMenu.build();
}
}
class menu extends JFrame {
JFrame frame;
public void build(){
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
frame.setSize(601,400);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
//Create MenuBar
JMenuBar menuBar = new JMenuBar();
//Create File menu
JMenu fileMenu = new JMenu("File");
//Create File menu items
JMenuItem quitMenuItem = new JMenuItem("Quit (Ctrl+Q)");
//Add File menu items
fileMenu.add(quitMenuItem);
//Add File menu to menubar
menuBar.add(fileMenu);
//Create Edit menu
JMenu editMenu = new JMenu("Edit");
//Create Edit menu items
JMenuItem prefMenuItem = new JMenuItem("Preferences (Ctrl+Q)");
//Add Edit menu items
editMenu.add(prefMenuItem);
//Add Edit menu to menubar
menuBar.add(editMenu);
//Create About menu
JMenu aboutMenu = new JMenu("About");
//Create About menu items
JMenuItem aboutMenuItem = new JMenuItem("About Me");
//Add About menu Items
aboutMenu.add(aboutMenuItem);
//Add About menu to menubar
menuBar.add(aboutMenu);
//Add the menubar to the frame
frame.setJMenuBar(menuBar);
}
public void setShow(boolean onOff_switch){
boolean closemain =(onOff_switch);
}
}
class mainMenu extends menu{
public void build(){
//Build frame from super class
super.build();
// Override super class' default size
frame.setSize(600,400);
//Buttons
JButton WordgapMenu = new JButton("Wordgaps");
WordgapMenu.addActionListener(new WordgapMenuAction());
JButton MangaMenu = new JButton("Manga");
MangaMenu.addActionListener(new MangaMenuAction());
JButton ListenCompMenu = new JButton("Listening Comprehension");
ListenCompMenu.addActionListener(new ListCompMenuAction());
JButton ReadCompMenu = new JButton("Reading Comprehension");
ReadCompMenu.addActionListener(new ReadCompAction());
JButton WordTestMenu = new JButton("Word Test");
WordTestMenu.addActionListener(new WordTestAction());
JButton DictionaryMenu = new JButton("Dictionary");
DictionaryMenu.addActionListener(new DictionaryMenuAction());
JButton KanaMenu = new JButton("Kana Quiz");
KanaMenu.addActionListener(new KanaMenuAction());
JButton WordPatternMenu = new JButton("Word Patterns");
WordPatternMenu.addActionListener(new WordPatternAction());
JButton KanjiMenu = new JButton("Kanji");
KanjiMenu.addActionListener(new KanjiMenuAction());
//Create Panel for the West Buttons
JPanel westpanel = new JPanel(new GridLayout(0,1));
//Add buttons to panel!
westpanel.add(WordgapMenu);
westpanel.add(MangaMenu);
westpanel.add(ListenCompMenu);
westpanel.add(ReadCompMenu);
westpanel.add(WordTestMenu);
westpanel.add(DictionaryMenu);
westpanel.add(KanaMenu);
westpanel.add(WordPatternMenu);
westpanel.add(KanjiMenu);
//Set panel layout
//westpanel.setLayout();
//westpanel.setLayout(new BoxLayout(westpanel, BoxLayout.Y_AXIS));
//Add panel to frame
frame.getContentPane().add(BorderLayout.WEST, westpanel);
MainMenuPic pic = new MainMenuPic();
frame.getContentPane().add(BorderLayout.CENTER, pic);
}
}
class MainMenuPic extends JPanel{
public void paintComponent(Graphics g){
Image image = new ImageIcon("preview.jpg").getImage();
g.drawImage(image,80,20,this);
}
}
class WordgapMenuAction extends mainMenu implements ActionListener{
public void actionPerformed(ActionEvent a){
//frame.setVisible(false);
JOptionPane.showMessageDialog(null, "You pressed the 'Wordgaps' button.");
//frame.setVisible(true);
}
}
class MangaMenuAction extends mainMenu implements ActionListener{
public void actionPerformed(ActionEvent a){
//frame.setVisible(false);
JOptionPane.showMessageDialog(null, "You pressed the 'Manga' button.");
//frame.setVisible(true);
}
}
class ListCompMenuAction extends mainMenu implements ActionListener{
public void actionPerformed(ActionEvent a){
//frame.setVisible(false);
JOptionPane.showMessageDialog(null, "You pressed the 'Listening Comprehension' button.");
//frame.setVisible(true);
}
}
class ReadCompAction extends mainMenu implements ActionListener{
public void actionPerformed(ActionEvent a){
//frame.setVisible(false);
JOptionPane.showMessageDialog(null, "You pressed the 'Reading Comprehension' button.");
//frame.setVisible(true);
}
}
class WordTestAction extends mainMenu implements ActionListener{
public void actionPerformed(ActionEvent a){
// check **** for this fix! frame.setLocationRelativeTo(random);
JOptionPane.showMessageDialog(null, "You pressed the 'Word Test' button.");
}
}
class DictionaryMenuAction extends mainMenu implements ActionListener{
public void actionPerformed(ActionEvent a){
//frame.setVisible(false);
JOptionPane.showMessageDialog(null, "You pressed the 'Dictionary' button.");
//frame.setVisible(true);
}
}
class KanaMenuAction extends mainMenu implements ActionListener{
public void actionPerformed(ActionEvent a){
//frame.setVisible(false);
JOptionPane.showMessageDialog(null, "You pressed the 'Kana Quiz' button.");
//frame.setVisible(true);
}
}
class WordPatternAction extends mainMenu implements ActionListener{
public void actionPerformed(ActionEvent a){
//frame.setVisible(false);
JOptionPane.showMessageDialog(null, "You pressed the 'Word Patterns' button.");
//frame.setVisible(true);
}
}
class KanjiMenuAction extends mainMenu implements ActionListener{
public void actionPerformed(ActionEvent a){
JOptionPane.showMessageDialog(null, "You pressed the 'Kanji' button.");
//frame.setVisible(true);
}
}
Any help/corrections to my thinking would be sincerely appreciated! Peace
What I want is for the mMenu frame to close when the user clicks one of the buttons and (eventually build a new frame but for now just) open a JOptionPane message dialog.
/*
* MainMenu.java
*
* Copyright 2009 Felix Mulder <felix.mulder@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MainMenu {
public static void main (String args[]) {
try{
UIManager.setLookAndFeel(new com.sun.java.swing.plaf.gtk.GTKLookAndFeel());
} catch(Exception ex){ ex.printStackTrace(); }
mainMenu mMenu = new mainMenu();
mMenu.frame = new JFrame("Benkyou-kun");
mMenu.build();
}
}
class menu extends JFrame {
JFrame frame;
public void build(){
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
frame.setSize(601,400);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
//Create MenuBar
JMenuBar menuBar = new JMenuBar();
//Create File menu
JMenu fileMenu = new JMenu("File");
//Create File menu items
JMenuItem quitMenuItem = new JMenuItem("Quit (Ctrl+Q)");
//Add File menu items
fileMenu.add(quitMenuItem);
//Add File menu to menubar
menuBar.add(fileMenu);
//Create Edit menu
JMenu editMenu = new JMenu("Edit");
//Create Edit menu items
JMenuItem prefMenuItem = new JMenuItem("Preferences (Ctrl+Q)");
//Add Edit menu items
editMenu.add(prefMenuItem);
//Add Edit menu to menubar
menuBar.add(editMenu);
//Create About menu
JMenu aboutMenu = new JMenu("About");
//Create About menu items
JMenuItem aboutMenuItem = new JMenuItem("About Me");
//Add About menu Items
aboutMenu.add(aboutMenuItem);
//Add About menu to menubar
menuBar.add(aboutMenu);
//Add the menubar to the frame
frame.setJMenuBar(menuBar);
}
public void setShow(boolean onOff_switch){
boolean closemain =(onOff_switch);
}
}
class mainMenu extends menu{
public void build(){
//Build frame from super class
super.build();
// Override super class' default size
frame.setSize(600,400);
//Buttons
JButton WordgapMenu = new JButton("Wordgaps");
WordgapMenu.addActionListener(new WordgapMenuAction());
JButton MangaMenu = new JButton("Manga");
MangaMenu.addActionListener(new MangaMenuAction());
JButton ListenCompMenu = new JButton("Listening Comprehension");
ListenCompMenu.addActionListener(new ListCompMenuAction());
JButton ReadCompMenu = new JButton("Reading Comprehension");
ReadCompMenu.addActionListener(new ReadCompAction());
JButton WordTestMenu = new JButton("Word Test");
WordTestMenu.addActionListener(new WordTestAction());
JButton DictionaryMenu = new JButton("Dictionary");
DictionaryMenu.addActionListener(new DictionaryMenuAction());
JButton KanaMenu = new JButton("Kana Quiz");
KanaMenu.addActionListener(new KanaMenuAction());
JButton WordPatternMenu = new JButton("Word Patterns");
WordPatternMenu.addActionListener(new WordPatternAction());
JButton KanjiMenu = new JButton("Kanji");
KanjiMenu.addActionListener(new KanjiMenuAction());
//Create Panel for the West Buttons
JPanel westpanel = new JPanel(new GridLayout(0,1));
//Add buttons to panel!
westpanel.add(WordgapMenu);
westpanel.add(MangaMenu);
westpanel.add(ListenCompMenu);
westpanel.add(ReadCompMenu);
westpanel.add(WordTestMenu);
westpanel.add(DictionaryMenu);
westpanel.add(KanaMenu);
westpanel.add(WordPatternMenu);
westpanel.add(KanjiMenu);
//Set panel layout
//westpanel.setLayout();
//westpanel.setLayout(new BoxLayout(westpanel, BoxLayout.Y_AXIS));
//Add panel to frame
frame.getContentPane().add(BorderLayout.WEST, westpanel);
MainMenuPic pic = new MainMenuPic();
frame.getContentPane().add(BorderLayout.CENTER, pic);
}
}
class MainMenuPic extends JPanel{
public void paintComponent(Graphics g){
Image image = new ImageIcon("preview.jpg").getImage();
g.drawImage(image,80,20,this);
}
}
class WordgapMenuAction extends mainMenu implements ActionListener{
public void actionPerformed(ActionEvent a){
//frame.setVisible(false);
JOptionPane.showMessageDialog(null, "You pressed the 'Wordgaps' button.");
//frame.setVisible(true);
}
}
class MangaMenuAction extends mainMenu implements ActionListener{
public void actionPerformed(ActionEvent a){
//frame.setVisible(false);
JOptionPane.showMessageDialog(null, "You pressed the 'Manga' button.");
//frame.setVisible(true);
}
}
class ListCompMenuAction extends mainMenu implements ActionListener{
public void actionPerformed(ActionEvent a){
//frame.setVisible(false);
JOptionPane.showMessageDialog(null, "You pressed the 'Listening Comprehension' button.");
//frame.setVisible(true);
}
}
class ReadCompAction extends mainMenu implements ActionListener{
public void actionPerformed(ActionEvent a){
//frame.setVisible(false);
JOptionPane.showMessageDialog(null, "You pressed the 'Reading Comprehension' button.");
//frame.setVisible(true);
}
}
class WordTestAction extends mainMenu implements ActionListener{
public void actionPerformed(ActionEvent a){
// check **** for this fix! frame.setLocationRelativeTo(random);
JOptionPane.showMessageDialog(null, "You pressed the 'Word Test' button.");
}
}
class DictionaryMenuAction extends mainMenu implements ActionListener{
public void actionPerformed(ActionEvent a){
//frame.setVisible(false);
JOptionPane.showMessageDialog(null, "You pressed the 'Dictionary' button.");
//frame.setVisible(true);
}
}
class KanaMenuAction extends mainMenu implements ActionListener{
public void actionPerformed(ActionEvent a){
//frame.setVisible(false);
JOptionPane.showMessageDialog(null, "You pressed the 'Kana Quiz' button.");
//frame.setVisible(true);
}
}
class WordPatternAction extends mainMenu implements ActionListener{
public void actionPerformed(ActionEvent a){
//frame.setVisible(false);
JOptionPane.showMessageDialog(null, "You pressed the 'Word Patterns' button.");
//frame.setVisible(true);
}
}
class KanjiMenuAction extends mainMenu implements ActionListener{
public void actionPerformed(ActionEvent a){
JOptionPane.showMessageDialog(null, "You pressed the 'Kanji' button.");
//frame.setVisible(true);
}
}
Any help/corrections to my thinking would be sincerely appreciated! Peace