RealHAZZARD
Erfahrenes Mitglied
Tach.
Erstmal mein Source:
Der tut eigentlich auch fast alles was was ich von ihm erwarte. Bis auf eines.
Es gibt darin eine MenuBar. Und unter "Optionen" > "Anzahl der Hölzchen" gibt es einen
Eintrag der einen RadioButton und ein FormattedTextfield in sich trägt. Das ganze hübsch verpackt in einem JPanel. Erstmal stellt der das auch richtig dar, aber wenn man
das Menu ein bißchen ofter auf unf zuklappt, stellt sich dieser Eintrag nicht mehr richtig dar.
Jetzt meine Fragen:
Warum?
Und wie kann ich ihm beibringen dieses zu unterlassen?
THX
Erstmal mein Source:
Code:
import java.awt.Container;
import java.awt.Event;
import java.awt.Graphics;
import java.awt.LayoutManager;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.event.InputMethodEvent;
import java.awt.event.InputMethodListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.text.ParseException;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBox;
import javax.swing.JDialog;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.JWindow;
import javax.swing.Renderer;
import javax.swing.text.MaskFormatter;
import org.apache.xalan.transformer.KeyRefIterator;
public class GUI
{
JFrame _fenster = new JFrame();
public static class MainMenu extends JMenuBar
{
JPanel panel = new JPanel();
JMenu _menu_spiel=new JMenu("Spiel");
JMenuItem _menu_item_neues_spiel=new JMenuItem("Neues Spiel");
JMenuItem _menu_item_quit=new JMenuItem("Programm beenden");
JMenu _menu_optionen=new JMenu("Optionen");
JMenu _menu_level=new JMenu("Level");
ButtonGroup _buttongroup_level=new ButtonGroup();
ButtonGroup _buttongroup_woodcount=new ButtonGroup();
JRadioButton _menu_radio_level_easy=new JRadioButton("Rookie");
JRadioButton _menu_radio_level_normal=new JRadioButton("Normal");
JRadioButton _menu_radio_level_hard=new JRadioButton("GodLike");
JMenu _menu_woodcout=new JMenu("Anzahl der Hölzchen");
JRadioButton _menu_radio_woodcount_owndif=new JRadioButton("Selbst deinieren");
JFormattedTextField _menu_woodcount_textfield_ask4it;// =new JFormattedTextField();
JMenuItem test = new JMenuItem();
JRadioButton _menu_radio_level_ask4it=new JRadioButton("Nach jedem Neustart fragen");
JRadioButton _menu_radio_level_random=new JRadioButton("Per Zufall enstcheiden");
public MainMenu()
{
try {
_menu_woodcount_textfield_ask4it = new JFormattedTextField(new MaskFormatter("##") {
{
setPlaceholderCharacter('#');
}
});
} catch (ParseException e) {
_menu_woodcount_textfield_ask4it=new JFormattedTextField();
}
// define the menu
panel.setLayout(null);
_menu_radio_woodcount_owndif.setLocation(0,0);
_menu_radio_woodcount_owndif.setSize(117,20);
_menu_woodcount_textfield_ask4it.setLocation(_menu_radio_woodcount_owndif.getWidth(),0);
_menu_woodcount_textfield_ask4it.setSize(20,20);
_menu_woodcount_textfield_ask4it.setColumns(2);
panel.add(_menu_woodcount_textfield_ask4it);
panel.add(_menu_radio_woodcount_owndif);
panel.setSize(125,25);
// define hierachy of menu
add(_menu_spiel);
_menu_spiel.add(_menu_item_neues_spiel);
_menu_spiel.add(_menu_item_quit);
add(_menu_optionen);
_menu_optionen.add(_menu_level);
_menu_level.add(_menu_radio_level_easy);
_menu_level.add(_menu_radio_level_normal);
_menu_level.add(_menu_radio_level_hard);
_menu_optionen.add(_menu_woodcout);
_menu_woodcout.add(panel);
_menu_woodcout.add(_menu_radio_level_ask4it);
_menu_woodcout.add(_menu_radio_level_random);
_buttongroup_level.add(_menu_radio_level_easy);
_buttongroup_level.add(_menu_radio_level_normal);
_buttongroup_level.add(_menu_radio_level_hard);
_buttongroup_woodcount.add(_menu_radio_woodcount_owndif);
_buttongroup_woodcount.add(_menu_radio_level_ask4it);
_buttongroup_woodcount.add(_menu_radio_level_random);
_menu_woodcount_textfield_ask4it.addInputMethodListener(new InputMethodListener()
{
public void caretPositionChanged(InputMethodEvent arg0) {
}
public void inputMethodTextChanged(InputMethodEvent arg0) {
}
});
}
}
public void gui_zeigen ()
{
_fenster.setJMenuBar(new MainMenu());
_fenster.setSize(500,500);
_fenster.setLocation(250,250);
_fenster.getContentPane().setLayout(null);
_fenster.setDefaultCloseOperation(_fenster.EXIT_ON_CLOSE);
_fenster.show();
}
public static void main(String[] args) {
GUI g =new GUI();
g.gui_zeigen();
}
}
Der tut eigentlich auch fast alles was was ich von ihm erwarte. Bis auf eines.
Es gibt darin eine MenuBar. Und unter "Optionen" > "Anzahl der Hölzchen" gibt es einen
Eintrag der einen RadioButton und ein FormattedTextfield in sich trägt. Das ganze hübsch verpackt in einem JPanel. Erstmal stellt der das auch richtig dar, aber wenn man
das Menu ein bißchen ofter auf unf zuklappt, stellt sich dieser Eintrag nicht mehr richtig dar.
Jetzt meine Fragen:
Warum?
Und wie kann ich ihm beibringen dieses zu unterlassen?
THX