JMenuItems werden von Komponente in Panel verdeckt

Status
Nicht offen für weitere Antworten.
T

terrestrex

Gast
Guten Tag,
ich habe ein Progrämmchen geschrieben um den PC automatisch nach eine gewisse Zeit runterzufahren.
(Es ist kein Hexenwerk: Ich benutze die EXE- Shutdown von Windoof :cool: )

Das Problem, das ich jetzt habe ist, dass die JMenuItems von den Komponenten, die sich unter der Menuleiste befinden, verdeckt werden.

Da ich mir das GUI so vorstelle, dass es wie ein Collage funktioniert, habe ich versucht die Menuleiste (der Klasse JMenuBar) mit mehrere Panels hervorzuheben - ohne Erfolg :cry:

Ich komme einfach nicht weiter und wäre für jede Hilfe dankbar.

Gruß

Hier mein Code für das Fenster

Code:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.*;
import java.io.IOException;
import java.util.Date;
import java.util.GregorianCalendar;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;


public class Rahmen implements ActionListener{
	
	/****************** globale variablen*************************/
	private int minute, hour, day, month, year;
	private GregorianCalendar theDateNow = new GregorianCalendar();
	private Date theDate = new Date(theDateNow.getTimeInMillis());		//heutiges Datum
	private TextField theYearField,theMonthField,theDayField,theHourField,theMinuteField;
	private static final long serialVersionUID = 12;
	private String Comment_text = "Shutdown initialisert mit Shutdown for WinXP";
	private int wid;	//pixelbreite des bildschirms
	private int hig;	//pixelhoehe des Bildschirms
	private JPanel thePanel = new JPanel();
	private JFrame theFrame;	//Rahmen des Fensters
	//private JPanel theBarPanel; //Panel für den BarMenu
	private Point thePosition;
	private int[] FrameSize = new int[4];
	
	
	///////////Konstruktor
	public Rahmen()
	{
		wid = Toolkit.getDefaultToolkit().getScreenSize().width;
		hig = Toolkit.getDefaultToolkit().getScreenSize().height;
		
		theFrame = new JFrame("Shutdown for WinXP");
		
		ImageIcon icon = new ImageIcon("shutdown.png"); 
		theFrame.setIconImage(icon.getImage());
		
		
		
		theFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	//programm schließen
		theFrame.setContentPane(getPanel());						//dasFenster//das frame bekommt dieses fensterobjekt
		theFrame.pack();
		//theFrame.setSize(wid/2,160);			//framegroesse zuweisen
		//theFrame.setLocation(wid/4,hig/2-160); 	//position des fensters
		theFrame.setVisible(true);	//es wird alles sichtbar
		
	}
	
	
	/////////////thePanel
	public JPanel getPanel()
	{
		String theYear = String.valueOf(theDateNow.get(theDateNow.YEAR)); 	//diese Jahr
		int theMonth0 = theDateNow.get(theDateNow.MONTH); 					//in java werden die monate von 0 - 12 gezaehlt
		String theMonth = String.valueOf(theMonth0+1); 						//diese Monat
		String theDay = String.valueOf(theDateNow.get(theDateNow.DAY_OF_MONTH));//diese Jahr
		String theHour = String.valueOf(theDateNow.get(theDateNow.HOUR_OF_DAY));//jetzige Stunde
		String theMinute = String.valueOf(theDateNow.get(theDateNow.MINUTE)); 	//jetzige minute
		int littleMinute = theDateNow.get(theDateNow.MINUTE);					//Damit die Uhr nicht 12:6 anzeigt
		if(littleMinute<10){theMinute="0"+theMinute;}							//...sondern 12:06
		
		
		
		/*****************Panel allgemein*****************/
		thePanel.setBackground(new Color(120,170,120));
		thePanel.setLayout(new BorderLayout());
		
		/*************************************************/
		
		/*****************CENTER********************/
		JPanel theCenterPanel = new JPanel();
		theCenterPanel.setLayout(new GridLayout(2,1));
				
		JPanel theTimePanel = new JPanel();
		theTimePanel.setSize(wid/2,20);
		theTimePanel.setLayout(new FlowLayout());
		
		
		theYearField = new TextField(theYear);
		theMonthField = new TextField(theMonth);
		theDayField = new TextField(theDay);
		theHourField = new TextField(theHour);
		theMinuteField = new TextField(theMinute);
		
		theTimePanel.add(new Label(sprache.Shutdown_at));
		theTimePanel.add(theHourField);
		theTimePanel.add(new Label(":"));
		theTimePanel.add(theMinuteField);
		theTimePanel.add(new Label(sprache.at));
		theTimePanel.add(theDayField);
		theTimePanel.add(new Label("."));
		theTimePanel.add(theMonthField);
		theTimePanel.add(new Label(".",Label.LEFT));
		theTimePanel.add(theYearField);
				
		JPanel theButtonPanel_1 = new JPanel();
		theButtonPanel_1.setSize(wid/2,20);
		theButtonPanel_1.setLayout(new FlowLayout());
		JPanel theButtonPanel_2 = new JPanel();
		theButtonPanel_2.setSize(wid/2,20);
		theButtonPanel_2.setLayout(new FlowLayout());
		JPanel theButtonPanel = new JPanel();
		theButtonPanel.setSize(wid/2,20);
		theButtonPanel.setLayout(new GridLayout(2,1));
		
		JButton theShutdownButton = new JButton(sprache.shutdown);
		theShutdownButton.addActionListener(this);
		JButton theShutdownBreakButton = new JButton(sprache.shutdownbreak);
		theShutdownBreakButton.addActionListener(this);
		JButton theCommentButton = new JButton(sprache.comment);
		theCommentButton.addActionListener(this);
		JButton theButtonEnd = new JButton(sprache.END);
		theButtonEnd.addActionListener(this);
		theButtonPanel_1.add(theShutdownButton);
		theButtonPanel_1.add(theShutdownBreakButton);
		theButtonPanel_1.add(theCommentButton);
		theButtonPanel_2.add(theButtonEnd);
		
		theButtonPanel.add(theButtonPanel_1);
		theButtonPanel.add(theButtonPanel_2);
		
		theCenterPanel.add(theTimePanel);
		theCenterPanel.add(theButtonPanel);
		thePanel.add(theCenterPanel, BorderLayout.CENTER);
		
		/**************NORTH****************/
		JMenuBar theBar = new JMenuBar();
		JMenu theFiles = new JMenu(sprache.files);
		JMenu theOption = new JMenu(sprache.options);
		JMenu theHelp = new JMenu(sprache.help);
		
		JMenuItem theItemEnd = new JMenuItem(sprache.END);
		theItemEnd.addActionListener(this);
		JMenuItem theCommentItem = new JMenuItem(sprache.comment);
		theCommentItem.addActionListener(this);
		theFiles.add(theItemEnd);
		theOption.add(theCommentItem);
		JMenuItem theInfoItem = new JMenuItem(sprache.info);
		theInfoItem.addActionListener(this);
		theHelp.add(theInfoItem);
		
		theBar.add(theFiles);
		theBar.add(theOption); //wird später noch gebraucht
		theBar.add(theHelp);
		/*JPanel theBarPanel2 = new JPanel();
		JPanel theBarPanel = new JPanel();
		JPanel theBarPanel3 = new JPanel();
		JPanel theBarPanel4 = new JPanel();
		theBarPanel2.add(theBar);
		theBarPanel3.add(theBarPanel2);
		theBarPanel4.add(theBarPanel3);
		theBarPanel.add(theBarPanel4);
		theBarPanel = new JPanel();
		theBarPanel.add(theBar);*/
		thePanel.add(theBar, BorderLayout.NORTH);
		
		/***********************************************/
		
		return thePanel;
	}
	
	
	.....
        .....
        .....


}

Damit es Funktioniert muss diese Klasse auch eingefügt werden:

Code:
public class sprache {

	public static final String END = new String("Programm beenden");
	public static final String shutdown = new String("Runterfahren");
	public static final String shutdownbreak = new String("Runterfahren abbrechen");
	public static final String no_date = new String("Das ist kein gueltiges Datum");
	public static final String at = new String(" am");
	public static final String Shutdown_at = new String("Herunterfahren um");
	public static final String lenguage = new String("Sprache");
	public static final String options = new String("Optionen");
	public static final String files = new String("Datei");
	public static final String comment = new String("Kommentar einfügen");
	public static final String no_comment = new String("Kommentar verwerfen");
	public static final String long_comment = new String("bitte max. 255 Zeichen");
	public static final String no_valid_time = new String("Das System kann nur in der Zukunft runtergefahren werden!");
	public static final String info = new String("über das Programm");
	public static final String vers = new String("Vers. 0.5.1");
	public static final String ok = new String("ok!");
	public static final String theInformation = new String("von ***** in Liebe für ******!");
	public static final String help = new String("Hilfe");
	public static final String about = new String("über...");

[/code]
 

chrs

Mitglied
Kleiner Tipp: Schau dir mal die Klasse ResourceBundle im JDK an, damit kannst du Sprachen weitaus einfacher verwalten. Ansonsten empfehle ich dir noch statt immer new String("") zu schreiben, einfach String s = "string"; zu schreiben da du sonst wenn du mal in die API schaust zwei Objekte erzeugst.

Zu deinem Problem, wie wärs wenn du uns eine SSCCE gibst? http://pscode.org/sscce.html
 
G

Gast2

Gast
Benutzer setJMenubar auf deinem Frame...
und lasse deinem Rahmen von JFrame erben ist einfacher und übersichtlicher

EDIT :oops:
 

kleiner_held

Top Contributor
Kleine Korrektur, die Methode heisst JFrame.setJMenuBar(...), das setMenuBar(...) gibts zwar auch noch, ist aber vom AWT Frame geerbt und kann entsprechend nur ein AWT MenuBar setzen.
 
T

terrestrex

Gast
moin,

hier werden schnell antworten gegeben. Das ist ja prima :lol:

Leider bin ich mit eure Antworten etwas überfordert. Ihr muss wissen, dass ich für den Code, das ich euch geschieckt habe ein paar Monate gebraucht habe. Ich denke mit Vorkenntnisse wäre es in ein paar Tage geschrieben, aber man fängt ja klein an :lol:

Also ich gehe jetzt der Reihe nach:

@chrs
Ich habe versucht nach "SSCCE", auch wenn ich nicht gewusst habe, dass in der Fachsprache dieses Akronym benutzt wird. Sollte ich mich dennoch falsch ausgedruckt haben, bitte ich die unverständliche Stellen zu zeigen.


@SirWayne & kleiner_Held

Ich habe meine "Rahmen"-Klasse um den "JFrame" erweitert. Leider weiß ich nicht wieso die Übersicht dadurch besser wird.

Die Methode "getPanel" habe ich wie folgendes geändert:

Code:
//thePanel.add(theBar, BorderLayout.NORTH);
theFrame.setJMenuBar(theBar);

Leider hat sich nichts geändert, außer, dass ich jetzt die Frage habe, was in Borderlayout.North steht. ???:L

Ich werde jetzt weiterversuchen, und danke euch nochmal.

Gruß
 
G

Gast2

Gast
also ich würde folgendes ändern

Code:
public class Rahmen extends JFrame implements ActionListener{

und dann theFrame rauschmeisen...

Ein Menü hängt ja wohl auch nicht im Norden eines Panels oder??? Sondern wird auf ein Frame gesetzt...
 
T

terrestrex

Gast
Tach,

ich habe ziemlich alle Änderungen gemacht, die Ihr vorgeschagen habt.
Das Objekt "theFrame" habe ich rausgeschmissen und ich muss zugeben, diese Strategie ist wirklich eleganter. :lol:

Die "JMenuBar" wird jetzt durch die Metode "setMenuBar()" geaddet.

Leider bringt's alles nicht. :roll:

Ich habe mit the "theCenterPanel" ein Bisschen experimentiert (Layout von GridLayout auf FlowLayout geändert) und festgestellt, dass nur die Componente, die in "theTimePanel" die "MenuItems" decken.

Kling komisch (für mich :autsch: ), ist aber so.

Könnte es sein, dass die Objekto von "JTextField" und "Label" ein besonderes Status haben und deshalb sie gar nicht gedeckt werden können? Oder gibt es sowas wie "Layer" und genau diese Objeke sind ganz oben?

In Moment steh ich voll auf den Schlauch und weiß nicht wohin :roll:

Gruß
 
G

Gast2

Gast
schick mal deinen neuen Code als lauffähiges programm, wo der effekt auftritt
 
G

Guest

Gast
moin,

Kann man in diesen Forum auch Dateien Hochladen?

Der Code ist aber folgender:

Classe mit der main-Methode:

Code:
import javax.swing.*;

import java.awt.Point;
import java.awt.Toolkit;



public class start {
		
	public static void main(String[] args) 
	{
		Rahmen Rahm = new Rahmen();
				
	}
		
}


Classe für den Fenster:

Code:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.*;
import java.io.IOException;
import java.util.Date;
import java.util.GregorianCalendar;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;


public class Rahmen extends JFrame implements ActionListener{
	
	/****************** globale variablen*************************/
	private int minute, hour, day, month, year;
	private GregorianCalendar theDateNow = new GregorianCalendar();
	private Date theDate = new Date(theDateNow.getTimeInMillis());		//heutiges Datum
	private TextField theYearField,theMonthField,theDayField,theHourField,theMinuteField;
	private static final long serialVersionUID = 12;
	private String Comment_text = "Shutdown initialisert mit Shutdown for WinXP";
	private int[] FrameSize = new int[4];
	
	
	///////////Konstruktor
	public Rahmen()
	{
		//wid = Toolkit.getDefaultToolkit().getScreenSize().width;
		//hig = Toolkit.getDefaultToolkit().getScreenSize().height;
		
		new JFrame("Shutdown for WinXP");
		
		ImageIcon icon = new ImageIcon("shutdown.png"); 
		setIconImage(icon.getImage());
		
		
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	//programm schließen
		setContentPane(getPanel());						//dasFenster//das frame bekommt dieses fensterobjekt
		
		pack();				//optiamle Größe herausfiinden
		setVisible(true);	//es wird alles sichtbar
		
	}
	
	
	/////////////the Panel///////////////////////////////////////
	public JPanel getPanel()
	{
		String theYear = String.valueOf(theDateNow.get(theDateNow.YEAR)); 	//diese Jahr
		int theMonth0 = theDateNow.get(theDateNow.MONTH); 					//in java werden die monate von 0 - 12 gezaehlt
		String theMonth = String.valueOf(theMonth0+1); 						//diese Monat
		String theDay = String.valueOf(theDateNow.get(theDateNow.DAY_OF_MONTH));//diese Jahr
		String theHour = String.valueOf(theDateNow.get(theDateNow.HOUR_OF_DAY));//jetzige Stunde
		String theMinute = String.valueOf(theDateNow.get(theDateNow.MINUTE)); 	//jetzige minute
		int littleMinute = theDateNow.get(theDateNow.MINUTE);					//Damit die Uhr nicht 12:6 anzeigt
		if(littleMinute<10){theMinute="0"+theMinute;}							//...sondern 12:06
		
		/*************************************************/
		
		/**************NORTH****************/
		
		JMenuBar theBar = new JMenuBar();
		JMenu theFiles = new JMenu(sprache.files);
		JMenu theOption = new JMenu(sprache.options);
		JMenu theHelp = new JMenu(sprache.help);
		
		JMenuItem theItemEnd = new JMenuItem(sprache.END);
		theItemEnd.addActionListener(this);
		JMenuItem theCommentItem = new JMenuItem(sprache.comment);
		theCommentItem.addActionListener(this);
		theFiles.add(theItemEnd);
		theOption.add(theCommentItem);
		JMenuItem theInfoItem = new JMenuItem(sprache.info);
		theInfoItem.addActionListener(this);
		theHelp.add(theInfoItem);
		
		theBar.add(theFiles);
		theBar.add(theOption); //wird später noch gebraucht
		theBar.add(theHelp);
		setJMenuBar(theBar);
		/***********************************************/
		
		
		/*****************CENTER********************/
		JPanel theCenterPanel = new JPanel();
		theCenterPanel.setLayout(new GridLayout(2,1));
				
		JPanel theTimePanel = new JPanel();				//Panel für die Zeit
		theTimePanel.setLayout(new FlowLayout());		//Hat ein FlowLayout
				
		theYearField = new TextField(theYear);
		theMonthField = new TextField(theMonth);
		theDayField = new TextField(theDay);
		theHourField = new TextField(theHour);
		theMinuteField = new TextField(theMinute);
		
		theTimePanel.add(new Label(sprache.Shutdown_at));
		theTimePanel.add(theHourField);
		theTimePanel.add(new Label(":"));
		theTimePanel.add(theMinuteField);
		theTimePanel.add(new Label(sprache.at));
		theTimePanel.add(theDayField);
		theTimePanel.add(new Label("."));
		theTimePanel.add(theMonthField);
		theTimePanel.add(new Label(".",Label.LEFT));
		theTimePanel.add(theYearField);
				
		JPanel theButtonPanel_1 = new JPanel();//Panel für die erste Zeile der Knöpfe
		theButtonPanel_1.setLayout(new FlowLayout());
		
		JPanel theButtonPanel_2 = new JPanel();//Panel für die zweite Zeile der Knöpfe
		theButtonPanel_2.setLayout(new FlowLayout());
		
		JPanel theButtonPanel = new JPanel(); //alle Buttons-Panel werden hier reingebracht
		theButtonPanel.setLayout(new GridLayout(2,1));
		
		JButton theShutdownButton = new JButton(sprache.shutdown); 
		theShutdownButton.addActionListener(this);
		JButton theShutdownBreakButton = new JButton(sprache.shutdownbreak);
		theShutdownBreakButton.addActionListener(this);
		JButton theCommentButton = new JButton(sprache.comment);
		theCommentButton.addActionListener(this);
		JButton theButtonEnd = new JButton(sprache.END);
		theButtonEnd.addActionListener(this);
		
		theButtonPanel_1.add(theShutdownButton); //erste Zeile der Buttons
		theButtonPanel_1.add(theShutdownBreakButton);
		theButtonPanel_1.add(theCommentButton);
		theButtonPanel_2.add(theButtonEnd); //zweite Zeile der Buttons
		
		theButtonPanel.add(theButtonPanel_1);//alles zusammenfügen
		theButtonPanel.add(theButtonPanel_2);
				
		theCenterPanel.add(theTimePanel);
		theCenterPanel.add(theButtonPanel);
		
		return theCenterPanel;
	}
	
	
	public void actionPerformed(ActionEvent e)
	{
	Process proc;
	
	if(e.getActionCommand().equals(sprache.END))
		{
		System.exit(0);
		}
	
	else if(e.getActionCommand().equals(sprache.shutdown))
		{
		
		try
        {
			minute = Integer.parseInt(theMinuteField.getText());
			hour =Integer.parseInt(theHourField.getText());
            day= Integer.parseInt(theDayField.getText());
            month = Integer.parseInt(theMonthField.getText())-1;
            year = Integer.parseInt(theYearField.getText());
        }
        catch(Exception f)
        {
         JOptionPane.showMessageDialog(null,sprache.no_date);
        }
        GregorianCalendar theTime2Shutdown = new GregorianCalendar(year,month,day,hour,minute);
    	Date theTime = new Date(theTime2Shutdown.getTimeInMillis());//zeitpunkt des runterfahren
		
		
		
		long i = (long) (theTime.getTime()-theDate.getTime())/1000;//sec. bis zum runterfahren
					
				if(i>0) //negative zeit wird nicht akzeptiert
				{
					try //shutdown befehl
					{
						 proc = Runtime.getRuntime().exec(System.getenv("windir")+"/system32/shutdown.exe -s -f -t "+i +" -c \""+Comment_text +"\""); //befehl zum runterfahren
					}
					catch(IOException iox)
					{
						System.out.println(iox.getMessage());
					}
				}
				else
				{JOptionPane.showMessageDialog(null,sprache.no_valid_time);}
		}
	else if(e.getActionCommand().equals(sprache.shutdownbreak))
		{
					try //shutdown befehl
					{
						proc = Runtime.getRuntime().exec(System.getenv("windir")+"/system32/shutdown.exe -a"); //runterfahren abrechen
						
					}
					catch(IOException iox)
					{
						System.out.println(iox.getMessage());
					}
		
		}
	else if(e.getActionCommand().equals(sprache.comment))
	{
		
		
		
		
		comment theComment = new comment(Comment_text, getFrameSize(),180);
        theComment.setVisible(true);
        if(theComment.getCloseOperation())
        {
          Comment_text = theComment.getComment(); 
        }
	}
	else if(e.getActionCommand().equals(sprache.info))
	{
		info thisInfo = new info(getFrameSize(), 100);
		thisInfo.setVisible(true);
	}
	
	}//actionPerformed
	
	public int[] getFrameSize()
	{
		
		FrameSize[0]=getLocationOnScreen().x;
		FrameSize[1]=getLocationOnScreen().y;
		FrameSize[2]=getSize().width;
		FrameSize[3]=getSize().height;
		return FrameSize;
	}//getFrame()

}//Klasse


Code für die Classe Sprache:

Code:
public class sprache {

	public static final String END = new String("Programm beenden");
	public static final String shutdown = new String("Runterfahren");
	public static final String shutdownbreak = new String("Runterfahren abbrechen");
	public static final String no_date = new String("Das ist kein gueltiges Datum");
	public static final String at = new String(" am");
	public static final String Shutdown_at = new String("Herunterfahren um");
	public static final String lenguage = new String("Sprache");
	public static final String options = new String("Optionen");
	public static final String files = new String("Datei");
	public static final String comment = new String("Kommentar einfügen");
	public static final String no_comment = new String("Kommentar verwerfen");
	public static final String long_comment = new String("bitte max. 255 Zeichen");
	public static final String no_valid_time = new String("Das System kann nur in der Zukunft runtergefahren werden!");
	public static final String info = new String("über das Programm");
	public static final String vers = new String("Vers. 0.5.1");
	public static final String ok = new String("ok!");
	public static final String theInformation = new String("von *** in Liebe für ***!");
	public static final String help = new String("Hilfe");
	public static final String about = new String("über...");
	
}

Für die Position der anderen Fenstern

Code:
import java.awt.Toolkit;

import javax.swing.JDialog;
import javax.swing.JFrame;

public class Position extends JDialog {
	/**
	 * 
	 */
	//Globale Varialblen
	private static final long serialVersionUID =0;
	protected int x,y,width,height;
	private int[] thePosition = new int[4];
	private int PanelHeight; //Hoehe des zu erzeugenden Panel
	//
	//
	//
	
	
	public Position(String theString, int[] hallo, int PanelHeight)
	{
		super((JFrame)null,theString,true);
		thePosition = hallo;
		x = thePosition[0];		//Position
		y = thePosition[1];
		width = thePosition[2]; //Framesize
		height= thePosition[3];
		this.PanelHeight = PanelHeight;
		setLocation(getXPosition(), getYPosition()); //position des fensters
		setSize(300,PanelHeight); //groesse des kinfofensters
	}
	
	public int getXSize()
	{
		int XSize=300;
		return XSize;
	}
	
	public int getXPosition()
	{ 
		int xPos;
		xPos = x+width/2-getXSize()/2;
	
	
		return xPos;
	}
	
	public int getYPosition()
	{
		int yPos=0;
		if((y+PanelHeight+height)<=(Toolkit.getDefaultToolkit().getScreenSize().height))
			yPos=y+height;
		if((y+PanelHeight+height)>Toolkit.getDefaultToolkit().getScreenSize().height)
			yPos=y-PanelHeight;
	
		return yPos;
	
	}
	
	
}


Code:
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JDialog;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.GridLayout;
import java.awt.Label;


public class info  extends Position implements ActionListener
{
	private static final long serialVersionUID = 0;
	 //PanelHeight = 90;
	
	
	
	public info(int[] thePosition, int PanelHeight)
	{	
		
		super(sprache.info+" "+sprache.vers,thePosition, PanelHeight);
		setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
	    JPanel theContent = (JPanel)getContentPane(); //hauptpanel
	    theContent.setLayout(new GridLayout(2,1)); //panalLayout
	    JPanel theInformation = new JPanel();
	    theInformation.add(new Label(sprache.theInformation));
	    JPanel theInfo =new JPanel();
	    JPanel theButtonPanel = new JPanel();
	    JButton okButton = new JButton(sprache.ok);
	    okButton.addActionListener(this);
	    theInfo.add(theInformation);
	    theButtonPanel.add(okButton);
	    theContent.add(theInfo);
	    theContent.add(theButtonPanel);
	    
	}
	
	public void actionPerformed(ActionEvent e)
	{
		dispose();//dieses Fenster muss nur geschlossen werden
	}
}

Code:
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JDialog;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JOptionPane;
import java.awt.GridLayout;

public class comment extends Position implements ActionListener
{
	
	private static final long serialVersionUID = 0;
	private boolean EclosedAsM=false;
	private String theComment;
	private JTextField commentField;
	private String Comment_text;
	private int PanelHeight; //hoehe des Panel
	
	public comment(String Comment_text, int[] thePosition, int PanelHeight)
	{		
	super(sprache.comment,thePosition, PanelHeight);
	
	setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
    JPanel theContent = (JPanel)getContentPane(); //Hauptpanel
    theContent.setLayout(new GridLayout(2,1)); //panalLayout
    
    this.Comment_text = Comment_text;
    JPanel buttons = new JPanel();
    JButton okButton = new JButton(sprache.comment);//the Buttons
    okButton.addActionListener(this);
    JButton cancelButton = new JButton(sprache.no_comment);
    cancelButton.addActionListener(this);
    buttons.add(okButton);
    buttons.add(cancelButton);
    
    commentField = new JTextField(Comment_text,20);
    theContent.add(commentField);
    theContent.add(buttons);
    
    
	}



	public void actionPerformed(ActionEvent e)
	{
		 if(e.getActionCommand().equals(sprache.comment))
	        {
			 theComment = commentField.getText();
			 if(theComment.length()<256)
			 {
	            EclosedAsM=true;
	            dispose();
			 }
			 else
			 {JOptionPane.showMessageDialog(null,sprache.long_comment);}
	        }
		 if(e.getActionCommand().equals(sprache.no_comment))
		 	{
	        dispose();
		 	}
	}

	public String getComment(){return theComment;}
    public boolean getCloseOperation(){return EclosedAsM;}

}


Eigentlich muss man nur auf dem Menu clicken, dann sieht man sofort wo das Problem ist.

Ich bedanke mich nochmal (auch für die Geduld)
 
G

Gast2

Gast
ahja das ist für dich also ein zusammen gefasstes kurzes bsp wo der effekt auftritt
 
T

Terrestrex

Gast
Danke :D
Danke :D
Danke :D
Danke :D
Danke :D
Danke :D


Ich mein erstes Java Programm.

danke

Danke :D
Danke :D
Danke :D
Danke :D
Danke :D
Danke :D
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
U ActionListener mit JMenuItems verknüpfen Java Basics - Anfänger-Themen 1
C JMenuItems abhängig von Datensätzen in der DB Java Basics - Anfänger-Themen 3
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
I Zapier -> wie werden Objekte gespeichert? Java Basics - Anfänger-Themen 10
L Datum - Monat und Jahr werden falsch angezeigt Java Basics - Anfänger-Themen 4
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
K Warum werden immer noch doppelte Zahlen ausgegeben ? Java Basics - Anfänger-Themen 13
O HashTable kann ohne Performance-Verlust in Multithreaded-Anwendungen eingesetzt werden. Java Basics - Anfänger-Themen 6
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
I aus 2 random zahlen soll nur die ungerade summe der beiden genommen werden. Java Basics - Anfänger-Themen 13
I Greenscreen, funktioniert nicht zu 100%... nicht alle Pixel werden geändert Java Basics - Anfänger-Themen 1
R Audio kann nur zum Teil gestoppt werden Java Basics - Anfänger-Themen 1
berserkerdq2 sqllite in Java, wenn ich mache select count(*) ..., erhalte ich dann nur die gezählte Anzahl oder werden auch die Tabellen ausgegeben? Java Basics - Anfänger-Themen 2
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
sserio Wieso werden nicht alle Primzahlen bis 1000 in meine Liste gepackt ? Java Basics - Anfänger-Themen 8
docmas 2DArray Werte werden nur untereinander ausgegeben Java Basics - Anfänger-Themen 1
E Umlaute und Sonderzeichen werden nach der Build Project nicht richtig angezeigt Java Basics - Anfänger-Themen 2
M Bei nach oben scrollen soll Seite aktualisiert werden (Userscript mit Javascript) Java Basics - Anfänger-Themen 10
A Wenn eine Zahl durch 7 teilbar ist, soll statt der Zahl ein ‘*‘ angezeigt werden. java? Java Basics - Anfänger-Themen 47
C Ein Algorithmus soll schneller werden Java Basics - Anfänger-Themen 24
Q Prüfen ob Zahl als Summe von Potenzen dargestellt werden kann. Java Basics - Anfänger-Themen 20
K Erste Schritte Wie schnell ist LinkedHashMap im Vergleich zur ArrayList, wenn alle Entries durchlaufen werden? Java Basics - Anfänger-Themen 47
LiFunk Exception: es dürfen nur Nummern eingelesen werden Java Basics - Anfänger-Themen 6
U Hauptklasse kann nicht gefunden werden Java Basics - Anfänger-Themen 8
OZAN86 For Schleife von 1-50 die Zahlen werden durch ein Komma getrennt Java Basics - Anfänger-Themen 10
M Wie kann ich Werte die in einer While Schleife sind weiter genutzt werden? Java Basics - Anfänger-Themen 7
Hallolu Pong-Spiel: Schläger schneller werden lassen Java Basics - Anfänger-Themen 9
C java.sql Statement kann nicht geschlossen werden Java Basics - Anfänger-Themen 9
LetsSebi Dateien werden nicht in Zip gespeichert Java Basics - Anfänger-Themen 1
D Codeblöcke, die immer wieder im Programmverlauf benötigt werden Java Basics - Anfänger-Themen 5
J Array Elemente werden nicht gefunden! Java Basics - Anfänger-Themen 6
M Warum werden character, die Leerzeichen sind, nicht korrekt verarbeitet? Java Basics - Anfänger-Themen 2
C Array-Werte werden gemischt, ohne Logik Java Basics - Anfänger-Themen 2
P Variablen HttpResponse.getBody() wird automatisch org.json Object und kann nicht zu json.simple Object gecastet werden? Java Basics - Anfänger-Themen 7
F JMenuItem Kann nicht nach einem String benannt werden... Java Basics - Anfänger-Themen 11
L Methode implementieren, Parameter die übergeben werden sind final Java Basics - Anfänger-Themen 4
Zrebna Programm kann aus der Konsole nicht gestartet werden (in der IDE läuft es) Java Basics - Anfänger-Themen 2
D Zahlen werden falsch gekürzt :? Java Basics - Anfänger-Themen 27
T Javafx ListView kann nicht gefüllt werden. Java Basics - Anfänger-Themen 6
H Eclipse kann nicht gestartet werden .... Java Basics - Anfänger-Themen 15
R Warum werden hier nur die grün und orangen Linien ausgegeben und der Rest unten nicht? Java Basics - Anfänger-Themen 5
J Eckige Klammern werden nicht erkannt Java Basics - Anfänger-Themen 1
J Klammern werden fälschlicherweise eingelesen Java Basics - Anfänger-Themen 2
Elyt Bei Monopoly werden Felder übersprungen Java Basics - Anfänger-Themen 2
Kirby.exe Hauptklasse konnte nicht gefunden werden.... Java Basics - Anfänger-Themen 27
B Nach dem kompilieren werden Bilder nicht mehr gefunden Java Basics - Anfänger-Themen 10
L Muss eine HttpURLConnection geschlossen werden? Java Basics - Anfänger-Themen 2
B Warum werden meine System.out.println's übersprungen? Java Basics - Anfänger-Themen 9
D java main methode kann nicht kompiliert werden (Erstellen eines Objekts) Java Basics - Anfänger-Themen 6
S Vergleichen ob der Integer der benutzt eingeben werden soll überhaupt ein int ist Java Basics - Anfänger-Themen 1
B Warum können super() und this() nicht gemeinsam in einem Konstruktor verwendet werden? Java Basics - Anfänger-Themen 7
V Array, Symbol kann nicht gefunden werden Java Basics - Anfänger-Themen 2
S TableView Items werden nicht angezeigt (+Verständnisfragen) Java Basics - Anfänger-Themen 15
O Apache: Log-Settings werden nicht gezogen Java Basics - Anfänger-Themen 0
H LayoutRes, Nullable und SystemServices werden in LayoutInflater nicht importiert Java Basics - Anfänger-Themen 9
A Wie erkennt die JVM welche class verwendet werden muss? Java Basics - Anfänger-Themen 3
L Input/Output AudioInputStream kann nicht erstellt werden. Java Basics - Anfänger-Themen 3
E Die Hauptklasse konnte nicht gefunden werden. Java Basics - Anfänger-Themen 12
H Hauptklasse ... konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 8
I Projekt als .jar Datei speichern - Bilder werden nicht mehr angezeigt Java Basics - Anfänger-Themen 4
J Strings sind gleich werden aber ungleich ausgewertet Java Basics - Anfänger-Themen 2
A Reader wohin werden Daten gespeichert? Java Basics - Anfänger-Themen 7
S Hauptklasse konnte nicht gefunden werden Java Basics - Anfänger-Themen 0
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 7
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 0
C Matrix-Werte werden nicht wie erwartet ausgegeben Java Basics - Anfänger-Themen 7
A Harshad Zahlen sollen in einem Intervall ausgegeben werden Java Basics - Anfänger-Themen 8
M GUI Startbutton und Titel werden nicht angezeigt Java Basics - Anfänger-Themen 1
F Variablen JTextField-Inhalt kann nicht mit String abgeglichen werden Java Basics - Anfänger-Themen 2
F Interface JButtons werden nicht angezeigt... Java Basics - Anfänger-Themen 5
DaCrazyJavaExpert Bilder werden nicht angezeigt! Java Basics - Anfänger-Themen 6
DaCrazyJavaExpert JLabels werden nicht angezeigt Java Basics - Anfänger-Themen 4
G Verkettete Liste - Neu erzeugte Elemente werden nicht ausgegeben Java Basics - Anfänger-Themen 5
S Fehler: Hauptklasse bin.demo.Start konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 2
M Klassen Fehler: Hauptklasse konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 17
P Interface Variablen-Inhalte werden nicht übergeben Java Basics - Anfänger-Themen 3
S Classpath "Hauptklasse konnte nicht gefunden oder geladen werden" Java Basics - Anfänger-Themen 6
T In Konsole darf nichts falsches eingetippt werden?! Java Basics - Anfänger-Themen 7
A Interface Abstrakte Interface Methode kann nicht benutzt werden Java Basics - Anfänger-Themen 10
C AppletViewer-Eigenschaftendatei kann nicht gelesen werden Java Basics - Anfänger-Themen 0
D Erste Schritte JFrame Inhalte werden nicht angezeigt Java Basics - Anfänger-Themen 8
L Bei falscher Eingabe soll NaN zurückgegeben werden, Rückgabetyp jedoch double Java Basics - Anfänger-Themen 3
A Die Werte zur Berechnung müssen als Parameter übergeben werden? Java Basics - Anfänger-Themen 7
H überprüfen ob in Array gleiche int-Zahlen gespeichert werden. Java Basics - Anfänger-Themen 7
P Threads Prozess kann nicht über die GUI gestartet werden Java Basics - Anfänger-Themen 8
D Prozente werden falsch berechnet Java Basics - Anfänger-Themen 8
H javac.exe konnte nicht gefunden werden Java Basics - Anfänger-Themen 2
H Methoden können nicht verwendet werden Java Basics - Anfänger-Themen 10
P Programm kann über CMD nicht ausgeführt werden Java Basics - Anfänger-Themen 2
C Java Hauptklasse konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 14
J Kann der Typ eines Objekts ausgegeben werden? Java Basics - Anfänger-Themen 11
K Hauptklasse konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 3
N String kann nicht in Wochentag konvertiert werden Java Basics - Anfänger-Themen 6
C Klassen Sudoku-Spiel Werte werden nicht gesetzt Java Basics - Anfänger-Themen 4
B PATH kann nicht geändert werden Java Basics - Anfänger-Themen 2
J JDK installieren Hauptklasse .... konnte nicht geladen werden. Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben