Action Handler JButton

Status
Nicht offen für weitere Antworten.
S

sportfreund

Gast
ich kämpfe gerade mit einem Problem mit dem Action Listener meiner Info Buttons in der Methode actionPerformed.

ich hab die event - button-Abfrage folgendermaßen implementiert:

Code:
if (event.getActionCommand() == buttonCalc.getText())
    calculate();

jedoch wenn der button nur ein Icon besitzt und keinen Text, dann ist event.getActionCommand() = "" und buttonMitIcon.getText() = "".

wie frage ich für die Info Buttons am besten ab ob diese geklickt worden sind?
 

The_S

Top Contributor
Code:
if (event.getSource() == buttonCalc) {
   // buttonCalc wurde gedrückt
}

Ich versteh gar nicht, warum so viele Bücher/Tutorials bei der "Action-Abfrage" immer über die ActionCommand anstelle gleich über die Source gehen ???:L
 
G

Guest

Gast
was liefert event.getSource() eigentlich genau zurück? hatte das vorher so implementiert, nur leider hats nicht funktioniert...
 
S

Sportfreund

Gast
Habs grad impelementiert. Bei den Buttons die Text + Icon haben funktionierts, jedoch bei den Buttons die nur ein Icon (Infobutton) haben gehts nicht. Da läuft er dann immer rein auch wenn der Button gar nicht gedrückt wurde. Was kann ich da machen bzw. wie frage ich das ab?
 
S

sportfreund

Gast
Das Coding dazu schaut so aus:

Code:
	class ButtonHandler implements ActionListener
	{
		public void actionPerformed(ActionEvent event)
		{
			String text = null;
			// Berechnungen der Trainingsbereiche
			if (event.getSource() == buttonCalc)
				calculate();
			
			// alle Felder löschen
			else if (event.getSource() == buttonClear)
				clearAllValues();
			
			else if (event.getSource() == buttonGesInfo)		
				text = "Info Popup";
				popupAnzeigen("Info Gesundheitszone", text);
		}
	 }

In den Zweig
Code:
			else if (event.getSource() == buttonGesInfo)		
				text = "Info Popup";
				popupAnzeigen("Info Gesundheitszone", text);
läuft er immer rein auch wenn ich den ButtonCalc drücke. Was kann ich tun um die Info Buttons richtig abzufangen?
 

The_S

Top Contributor
Kann nicht sein. Poste doch mal ein KSKB (kleines Programm, dass wir einfach nur Copy&Pasten müssen, dann gleich kompilieren können, und uns beim Ausführen deinen Fehler demonstriert).
 
S

Sportfreund

Gast
So hier die 2 Klassen die für das Proggi benötigt werden. Falls euch Unschönheiten die ihr besser od. eleganter lösen würdet auffallen würd ich mich über Info freuen, da ich in Java noch nicht soooo viel Erfahrung habe und man immer dazulernen kann. --> Danke schonmal für eure Hilfe!!!

Klasse Karvonen_GUI.java
Code:
import java.awt.BorderLayout;
import java.awt.FocusTraversalPolicy;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;

/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit [url]www.cloudgarden.com[/url] for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class Karvonen_GUI extends javax.swing.JFrame implements KeyListener {

	{
		//Set Look & Feel
		try {
			javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

	private JPanel jPanel1;
	private JLabel labelAerob1;
	private JLabel labelFett1;
	private JLabel labelGesu1;
	private JLabel labelWarn;
	private JLabel labelAnaerob;
	private JLabel labelAerob;
	private JLabel labelFett;
	private JLabel labelGesu;
	private JTextField textRP;
	private JTextField textMaxHF;
	private JLabel labelRP;
	private JLabel labelMaxHF;
	private JButton buttonWarnInfo;
	private JButton buttonAnaerobInfo;
	private JButton buttonAerobInfo;
	private JButton buttonFettInfo;
	private JButton buttonGesInfo;
	private JLabel labelIconMaxHF;
	private JLabel labylCopyright;
	private JButton buttonClear;
	private JButton buttonCalc;
	private JTextField textAnaerob2;
	private JTextField textAerob2;
	private JTextField textFett2;
	private JTextField textGesu2;
	private JLabel labelTrennWarn;
	private JLabel labelTrennAnaerob;
	private JLabel labelTrennAerob;
	private JLabel labelTrennFett;
	private JLabel labelTrennGesu;
	private JTextField textWarn;
	private JTextField textFett;
	private JTextField textGesu;
	private JTextField textAerob;
	private JTextField textAnaerob;
	private JLabel labelWarn1;
	private JLabel labelAnaerob1;

	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				Karvonen_GUI inst = new Karvonen_GUI();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	
	public Karvonen_GUI() {
		super();
		initGUI();
	}
	
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			this.setTitle("Trainingsbereich-Rechner");
			this.setIconImage(new ImageIcon("src/images/diagramm.png").getImage());
			{
				jPanel1 = new JPanel();
				getContentPane().add(jPanel1, BorderLayout.CENTER);
				jPanel1.setLayout(null);
				jPanel1.setPreferredSize(new java.awt.Dimension(501, 275));
				{
					labelIconMaxHF = new JLabel();
					jPanel1.add(labelIconMaxHF);
					labelIconMaxHF.setIcon(new ImageIcon("src/images/icon_01herz.gif"));
					labelIconMaxHF.setBounds(15, 18, 27, 28);
				}				
				{
					labelMaxHF = new JLabel();
					jPanel1.add(labelMaxHF);
					labelMaxHF.setText("maximale Herzfrequenz");
					labelMaxHF.setBounds(52, 23, 173, 14);
					labelMaxHF.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					labelRP = new JLabel();
					jPanel1.add(labelRP);
					labelRP.setText("Ruhepuls");
					labelRP.setBounds(52, 50, 173, 14);
					labelRP.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					textMaxHF = new JTextField();
					textMaxHF.addKeyListener(this);
					jPanel1.add(textMaxHF);
					textMaxHF.setBounds(252, 21, 40, 21);
					textMaxHF.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					textRP = new JTextField();
					textRP.addKeyListener(this);
					jPanel1.add(textRP);
					textRP.setBounds(252, 48, 40, 21);
					textRP.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					labelGesu = new JLabel();
					jPanel1.add(labelGesu);
					labelGesu.setText("Gesundheitszone");
					labelGesu.setBounds(36, 111, 165, 18);
					labelGesu.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					labelFett = new JLabel();
					jPanel1.add(labelFett);
					labelFett.setText("Fettverbrennungszone");
					labelFett.setBounds(36, 137, 165, 18);
					labelFett.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					labelAerob = new JLabel();
					jPanel1.add(labelAerob);
					labelAerob.setText("Aerobe Zone");
					labelAerob.setBounds(36, 163, 165, 18);
					labelAerob.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					labelAnaerob = new JLabel();
					jPanel1.add(labelAnaerob);
					labelAnaerob.setText("Anaerobe Zone");
					labelAnaerob.setBounds(36, 189, 165, 18);
					labelAnaerob.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					labelWarn = new JLabel();
					jPanel1.add(labelWarn);
					labelWarn.setText("Warnzone");
					labelWarn.setBounds(36, 215, 165, 18);
					labelWarn.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					labelGesu1 = new JLabel();
					jPanel1.add(labelGesu1);
					labelGesu1.setText("50-60% der HFmax");
					labelGesu1.setBounds(207, 111, 149, 18);
					labelGesu1.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					labelFett1 = new JLabel();
					jPanel1.add(labelFett1);
					labelFett1.setText("60-70% der HFmax");
					labelFett1.setBounds(207, 137, 149, 18);
					labelFett1.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					labelAerob1 = new JLabel();
					jPanel1.add(labelAerob1);
					labelAerob1.setText("70-80% der HFmax");
					labelAerob1.setBounds(207, 163, 149, 18);
					labelAerob1.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					labelAnaerob1 = new JLabel();
					jPanel1.add(labelAnaerob1);
					labelAnaerob1.setText("80-90% der HFmax");
					labelAnaerob1.setBounds(207, 191, 149, 14);
					labelAnaerob1.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					labelWarn1 = new JLabel();
					jPanel1.add(labelWarn1);
					labelWarn1.setText("90-100% der HFmax");
					labelWarn1.setBounds(207, 215, 149, 18);
					labelWarn1.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					textAnaerob = new JTextField();
					jPanel1.add(textAnaerob);
					textAnaerob.setBounds(384, 186, 40, 21);
					textAnaerob.setEditable(false);
					textAnaerob.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					textAerob = new JTextField();
					jPanel1.add(textAerob);
					textAerob.setBounds(384, 160, 40, 21);
					textAerob.setEditable(false);
					textAerob.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					textGesu = new JTextField();
					jPanel1.add(textGesu);
					textGesu.setBounds(384, 108, 40, 21);
					textGesu.setEditable(false);
					textGesu.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					textFett = new JTextField();
					jPanel1.add(textFett);
					textFett.setBounds(384, 134, 40, 21);
					textFett.setEditable(false);
					textFett.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					textWarn = new JTextField();
					jPanel1.add(textWarn);
					textWarn.setBounds(444, 212, 40, 21);
					textWarn.setEditable(false);
					textWarn.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					labelTrennGesu = new JLabel();
					jPanel1.add(labelTrennGesu);
					labelTrennGesu.setText("-");
					labelTrennGesu.setBounds(434, 111, 10, 14);
				}
				{
					labelTrennFett = new JLabel();
					jPanel1.add(labelTrennFett);
					labelTrennFett.setText("-");
					labelTrennFett.setBounds(434, 137, 10, 14);
				}
				{
					labelTrennAerob = new JLabel();
					jPanel1.add(labelTrennAerob);
					labelTrennAerob.setText("-");
					labelTrennAerob.setBounds(434, 163, 10, 14);
				}
				{
					labelTrennAnaerob = new JLabel();
					jPanel1.add(labelTrennAnaerob);
					labelTrennAnaerob.setText("-");
					labelTrennAnaerob.setBounds(434, 189, 10, 14);
				}
				{
					labelTrennWarn = new JLabel();
					jPanel1.add(labelTrennWarn);
					labelTrennWarn.setText(">");
					labelTrennWarn.setBounds(434, 215, 10, 14);
				}
				{
					textGesu2 = new JTextField();
					jPanel1.add(textGesu2);
					textGesu2.setBounds(444, 108, 40, 21);
					textGesu2.setEditable(false);
					textGesu2.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					textFett2 = new JTextField();
					jPanel1.add(textFett2);
					textFett2.setBounds(444, 134, 40, 21);
					textFett2.setEditable(false);
					textFett2.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					textAerob2 = new JTextField();
					jPanel1.add(textAerob2);
					textAerob2.setBounds(444, 160, 40, 21);
					textAerob2.setEditable(false);
					textAerob2.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					textAnaerob2 = new JTextField();
					jPanel1.add(textAnaerob2);
					textAnaerob2.setBounds(444, 186, 40, 21);
					textAnaerob2.setEditable(false);
					textAnaerob2.setFont(new java.awt.Font("Tahoma",0,16));
				}
				{
					ImageIcon calc = new ImageIcon("src/images/kalkulation16.gif");
					buttonCalc = new JButton();
					jPanel1.add(buttonCalc);
					buttonCalc.setText("berechnen");
					buttonCalc.setIcon(calc);
					buttonCalc.setBounds(316, 21, 151, 21);
					buttonCalc.setToolTipText("Trainingsbereiche berechnen");
					buttonCalc.setFont(new java.awt.Font("Tahoma",0,14));
				}
				{
					buttonClear = new JButton();
					jPanel1.add(buttonClear);
					buttonClear.setText("Eingaben löschen");
					buttonClear.setBounds(316, 48, 151, 21);
					buttonClear.setToolTipText("alle Felder löschen");
					buttonClear.setFont(new java.awt.Font("Tahoma",0,14));
				}
				{
			        buttonGesInfo = new JButton();
			        jPanel1.add(buttonGesInfo);
					buttonGesInfo.setBounds(3, 110, 24, 20);
					buttonGesInfo.setToolTipText("Info Gesundheitszone");
					buttonGesInfo.setIcon(new ImageIcon("src/images/Info.png"));
				}
				{
			        buttonFettInfo = new JButton();
			        jPanel1.add(buttonFettInfo);
			        buttonFettInfo.setBounds(3, 136, 24, 20);
			        buttonFettInfo.setToolTipText("Info Fettverbrennungszone");
			        buttonFettInfo.setIcon(new ImageIcon("src/images/Info.png"));
				}
				{
			        buttonAerobInfo = new JButton();
			        jPanel1.add(buttonAerobInfo);
			        buttonAerobInfo.setBounds(3, 162, 24, 20);
			        buttonAerobInfo.setToolTipText("Info Aerobe Zone");
			        buttonAerobInfo.setIcon(new ImageIcon("src/images/Info.png"));
				}
				{
					buttonAnaerobInfo = new JButton();
			        jPanel1.add(buttonAnaerobInfo);
			        buttonAnaerobInfo.setBounds(3, 188, 24, 20);
			        buttonAnaerobInfo.setToolTipText("Info Anaerobe Zone");
			        buttonAnaerobInfo.setIcon(new ImageIcon("src/images/Info.png"));
				}
				{
					buttonWarnInfo = new JButton();
			        jPanel1.add(buttonWarnInfo);
			        buttonWarnInfo.setBounds(3, 214, 24, 20);
			        buttonWarnInfo.setToolTipText("Info Warnzone");
			        buttonWarnInfo.setIcon(new ImageIcon("src/images/Info.png"));
				}
				
			     /*Setzt die richtige Tabulatorenreihenfolge */
			    FocusTraversalPolicy policy = getFocusTraversal(
			        new JComponent[]
			        {textMaxHF, textRP}); //hier alles eintragen was man focussieren will

			    setFocusTraversalPolicy(policy); //setzen
			    setFocusCycleRoot(true);//enablen
				
				ButtonHandler handler = new ButtonHandler();
				buttonClear.addActionListener(handler);	
				buttonCalc.addActionListener(handler);
				
				buttonGesInfo.addActionListener(handler);
				buttonFettInfo.addActionListener(handler);
				buttonAerobInfo.addActionListener(handler);
				buttonAnaerobInfo.addActionListener(handler);
				buttonWarnInfo.addActionListener(handler);
				
			}
			pack();
			this.setSize(502, 309);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	class ButtonHandler implements ActionListener
	{
		public void actionPerformed(ActionEvent event)
		{
			String text = null;
			// Berechnungen der Trainingsbereiche
			if (event.getSource() == buttonCalc)
				calculate();
			
			// alle Felder löschen
			if (event.getSource() == buttonClear)
				clearAllValues();
			
			if (event.getSource() == buttonGesInfo)		
				text = "noch kein Text";
				popupAnzeigen("Info Gesundheitszone", text);	
				
			if (event.getActionCommand() == buttonFettInfo.getText())	
				text = "noch kein Text";
				popupAnzeigen("Info Fettverbrennungszone", text);
				
			if  (event.getActionCommand() == buttonAerobInfo.getText())	
				text = "Erhöhung und Entwicklung der Grundlagenausdauer auf einem etwas höheren Niveau. 
Starke Wirkung auf das Herz- Kreislaufsystem (Sauerstofftransportkapazität) aber auch auf die Muskelkraft.";
				popupAnzeigen("Info Aerobe Zone", text);
				
			if (event.getActionCommand() == buttonAnaerobInfo.getText())	
				text = "Hier findet das anaerobe Schwellentraining statt. Ab einem bestimmten Punkt kann der 
Körper das bei der anaeroben Verbrennung anfallende Laktat nicht mehr so schnell beseitigen wie es entsteht 
(=anaerobe Schwelle). Ein Training in dieser Zone führt zu einer verbesserten Laktatbeseitung und Laktattoleranz 
(Laktatkompensationstraining). Die persönliche anerobe Schwelle verschiebt sich Richtung maximaler Herzfrequenz 
(Anhebung der AS), die Fähigkeit der Muskeln mit dem zur Verfügung stehenden Sauerstoff Glykogen und Fett zu 
Energie zu verwandeln verbessert sich. Das alles führt dazu, dass der Läufer länger schneller laufen kann.";
				popupAnzeigen("Info Anaerobe Zone", text);
				
			if (event.getActionCommand() == buttonWarnInfo.getText())	
				text = "Hier kann man nur für sehr kurze Zeit trainieren. Dabei profitieren vor allem die 
schnellkräftigen Muskelfasern, was die Schnelligkeit erhöht. Die AS wird angehoben. Laktattoleranz und -beseitung 
werden stark verbessert. Die VO2max wird erweitert. Der Wille und die Tempohärte werden geschult.";
				popupAnzeigen("Info Warnzone", text);
		}
	 }
	
	public void keyPressed(KeyEvent event) {
		if (event.getKeyCode() == KeyEvent.VK_ENTER)
			calculate();	
	}

	public void keyReleased(KeyEvent event) {
		
	}

	public void keyTyped(KeyEvent event) {

	}
	
	public String getMaxHF() {				
		String maxHF = textMaxHF.getText();
		return maxHF;
	}

	
	public String getRP() {
		String RP = textRP.getText();
		return RP;
	}
	
	public void setValues(String ges,
						  String ges2,
						  String fett,
						  String fett2,
						  String aerob,
						  String aerob2,
						  String anaerob,
						  String anaerob2,
						  String warn) {
		
		textGesu.setText(ges);
		textGesu2.setText(ges2);
		textFett.setText(fett);
		textFett2.setText(fett2);
		textAerob.setText(aerob);
		textAerob2.setText(aerob2);
		textAnaerob.setText(anaerob);
		textAnaerob2.setText(anaerob2);
		textWarn.setText(warn);
	}
	
	private void calculate() {
		String ges;
		String ges2;
		String fett;
		String fett2;
		String aerob;
		String aerob2;
		String anaerob;
		String anaerob2;
		String warn;
		int maxHFCalc = 0;
		int RPCalc = 0;
		int erg;
		
			
		String maxHF = getMaxHF();
		String RP    = getRP();
		
		if (!maxHF.equals("") && !RP.equals(""))
		{
			maxHFCalc = Integer.parseInt(maxHF);		
			RPCalc = Integer.parseInt(RP);
		}
		
	    erg = (int) ((maxHFCalc-RPCalc)*0.5+RPCalc);
	    ges = erg + "";
	    erg = (int) ((maxHFCalc-RPCalc)*0.6+RPCalc);
	    ges2 = erg + "";
	    fett = erg + "";
	    erg = (int) ((maxHFCalc-RPCalc)*0.7+RPCalc);
	    fett2 = erg + "";
	    aerob = erg + "";
	    erg = (int) ((maxHFCalc-RPCalc)*0.8+RPCalc);
	    aerob2 = erg + "";
	    anaerob = erg + "";
	    erg = (int) ((maxHFCalc-RPCalc)*0.9+RPCalc);
	    anaerob2 = erg + "";
	    warn = erg + "";
		
	    setValues(ges,
	    		  ges2,
	    		  fett,
	    		  fett2,
	    		  aerob,
	    		  aerob2,
	    		  anaerob,
	    		  anaerob2,
	    		  warn);
 		  
	}
	
	private void clearAllValues() {
		textMaxHF.setText(null);
		textRP.setText(null);
		textGesu.setText(null);
		textGesu2.setText(null);
		textFett.setText(null);
		textFett2.setText(null);
		textAerob.setText(null);
		textAerob2.setText(null);
		textAnaerob.setText(null);
		textAnaerob2.setText(null);
		textWarn.setText(null);
	}
	
	public int getFramePositionX()
	{
		int x = this.getLocation().x;
		return x;
	}
	
	public int getFramePositionY()
	{
		int y = this.getLocation().y;
		return y;
	}
		
	private void popupAnzeigen(String infoText, String text)
	{
		DialogInfo info = new DialogInfo(this);
		info.setTitle(infoText);
		info.setTextArea(text);
		info.setModal(true);
		info.setVisible(true);
	}
	
	   /****************************************************************************
	   * Gibt die Reihenfolge der in order[] gespeicherten Componenten als FocusTraversalPolicy Objekt zurück
	   * @param order  sind die Componenten in richtiger Reihenfolge und notfalls muss eine Typkonvertierung
	   * mittels (JComponent) durchgeführt werden
	   * @return  das Objekt mit dem man mit setFocusTraversalPolicy(FocsTraersalPolicy) und aktivieren mit
	   * setFocusCycleRoot(true)
	   ***************************************************************************/
	  public static FocusTraversalPolicy getFocusTraversal(final JComponent order[])
	  {
	    FocusTraversalPolicy policy = new FocusTraversalPolicy()
	    {
	      java.util.List list = java.util.Arrays.asList(order);
	      public java.awt.Component getFirstComponent(java.awt.Container
	                                                  focusCycleRoot)
	      {
	        return order[0];
	      }

	      public java.awt.Component getLastComponent(java.awt.Container
	                                                 focusCycleRoot)
	      {
	        return order[order.length - 1];
	      }

	      public java.awt.Component getComponentAfter(java.awt.Container
	                                                  focusCycleRoot,
	                                                  java.awt.Component aComponent)
	      {
	        int index = list.indexOf(aComponent);
	        return order[ (index + 1) % order.length];
	      }

	      public java.awt.Component getComponentBefore(java.awt.Container
	          focusCycleRoot,
	          java.awt.Component aComponent)
	      {
	        int index = list.indexOf(aComponent);
	        return order[ (index - 1 + order.length) % order.length];
	      }

	      public java.awt.Component getDefaultComponent(java.awt.Container
	          focusCycleRoot)
	      {
	        return order[0];
	      }

	      public java.awt.Component getInitialComponent(java.awt.Window window)
	      {
	        return order[0];
	      }
	    };
	    return policy;
	  }
}

Klasse DialogInfo.java (JDialog für Info Fenster)
Code:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit [url]www.cloudgarden.com[/url] for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class DialogInfo extends javax.swing.JDialog {

	{
		//Set Look & Feel
		try {
			javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

	private JPanel panelInfo;
	private JTextArea textAreaInfo;
	private JFrame mainFrame;

	/**
	* Auto-generated main method to display this JDialog
	*/
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				JFrame frame = new JFrame();
				DialogInfo inst = new DialogInfo(frame);
				inst.setVisible(true);
			}
		});
	}
	
	public DialogInfo(JFrame frame) {
		super(frame);
		mainFrame = frame;
		initGUI();
	}
	
	private void initGUI() {
		try {
			{
				this.setTitle("Info");
				{
					panelInfo = new JPanel();
					GridLayout panelInfoLayout = new GridLayout(1, 1);
					panelInfoLayout.setColumns(1);
					panelInfoLayout.setHgap(5);
					panelInfoLayout.setVgap(5);
					getContentPane().add(panelInfo, BorderLayout.CENTER);
					panelInfo.setLayout(panelInfoLayout);
					{
						textAreaInfo = new JTextArea();
						textAreaInfo.setEditable(false);
						textAreaInfo.setLineWrap(true);
						textAreaInfo.setWrapStyleWord(true);
						textAreaInfo.setBackground((Color)UIManager.get("Label.background"));
					    textAreaInfo.setFont((Font)UIManager.get("Label.font"));
						panelInfo.add(textAreaInfo);
					}
				}
			}
			this.setSize(397, 204);
			int x = mainFrame.getLocation().x;
			int y = mainFrame.getLocation().y;
			setLocation(x, y);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
		
	public void setTextArea(String text)
	{
		textAreaInfo.setText(text);
	}

}
 

The_S

Top Contributor
Die Betonung lag auf KLEINES Programm. Ich wollte keinesfalls deinen kompletten Code, sondern nur eine übersichtliche Zusammenfassung. Aber OK, ich schau mal was sich machen lässt ...
 
S

sportfreund

Gast
ups, sorry du meintest mein kleines proggi...

danke auf alle fälle mal für deine Unterstützung!!!
 

The_S

Top Contributor
ich meinte nicht dein kleines Proggi, sondern ein kleines Proggi. Aber OK. Du weißt, was geschweifte Klammern bzw. nicht geschweifte Klammern hinter IF-Abfrage bewirkten bzw. nicht bewirken!?
 
S

sportfreund

Gast
heißt es, dass dann die if anweisung immer ausgeführt wird? --> shit, hab wohl zu lange schon keine java gemacht und zuviel abap in sap da gibts bei if keine klammern...
 

The_S

Top Contributor
Wenn du if-Anweisungen OHNE Klammern schreibst, wird nur die direkt nachfolgende Codezeile ausgeführt. Alles was danach kommt ist Programmtechnisch schon wieder außerhalb der if-Anweisung. Einrückungen haben in Java keine Bedeutung. Du könntest sogar dein Programm komplett in einer Zeile schreiben.
 
S

sportfreund

Gast
shit, war ein dummer programmierfehler von mir. mit klammern funktionierts nun richtig!

danke auf alle fälle für deine mühe und hilfe!!!

Grüße

P.S. ist dir auf die schnelle sonst irgendwelch unschönes Coding aufgefallen?
 
G

Gast17

Gast
Schon mal was von Arrays/Listen gehört ? Konstantenauslagerung ? Bevor du mit Oberflächen rumspielst, solltest du lieber mal an den Grundkenntnissen arbeiten.
Mit gescheiter Programmierung hätte man obiges Programm in Bezug auf LOC vierteln können Oo
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M JavaFX Button action abhängigkeit von Tab AWT, Swing, JavaFX & SWT 1
B Probleme Action Listener Taschenrechner AWT, Swing, JavaFX & SWT 27
Z Befehl Action Event Verlassen AWT, Swing, JavaFX & SWT 4
J Action Listener Rückgabewert AWT, Swing, JavaFX & SWT 14
3 JComboBox - Action - Auslesen & Umwandeln AWT, Swing, JavaFX & SWT 9
J Java -8 Action Listener für mehrere Buttons AWT, Swing, JavaFX & SWT 9
S Action durchführen beim Programm beenden AWT, Swing, JavaFX & SWT 3
K Swing KeyBinding: Action wird nicht ausgelöst AWT, Swing, JavaFX & SWT 3
K Array von einer Action zur anderen bringen AWT, Swing, JavaFX & SWT 7
T action für Button übergeben - bitte um Segen AWT, Swing, JavaFX & SWT 1
F In Action Listener TextFields einlesen und prüfen. Abbruch bei falschen Eingaben. Wie mache ich das? AWT, Swing, JavaFX & SWT 2
G mehrere Action-Abfolgen erfassen AWT, Swing, JavaFX & SWT 6
I Button Action AWT, Swing, JavaFX & SWT 6
C Swing MenuItem feuert Action nur wenn disabled AWT, Swing, JavaFX & SWT 2
K Action Listener implementieren über Objekt AWT, Swing, JavaFX & SWT 14
H Problem mit dem Action listener.... AWT, Swing, JavaFX & SWT 2
J SWT Rechteck Füllfarbe wird bei Action falsch gefüll AWT, Swing, JavaFX & SWT 2
S Action Listener in innerer Klasse ausführen. AWT, Swing, JavaFX & SWT 8
D Drag-Action: Innerhalb meiner View? AWT, Swing, JavaFX & SWT 3
alex_fairytail Swing Textfeld Action wenn geschrieben wird? AWT, Swing, JavaFX & SWT 6
R innere Action -> auf äußeres this zugreifen AWT, Swing, JavaFX & SWT 3
L Action listener in bestimmter spalte AWT, Swing, JavaFX & SWT 2
P Action Event abfangen etwas anders? AWT, Swing, JavaFX & SWT 2
J AWT Action Listener etc. AWT, Swing, JavaFX & SWT 7
N Swing nach Fensterrand Action ausführen? HILFE AWT, Swing, JavaFX & SWT 7
L ComboBox in Action AWT, Swing, JavaFX & SWT 4
M SWT Jface Action und localised Strings AWT, Swing, JavaFX & SWT 6
I Button Action AWT, Swing, JavaFX & SWT 4
K GUI, Action AWT, Swing, JavaFX & SWT 4
B Frage zu Button-Action AWT, Swing, JavaFX & SWT 3
J Action before actionPerformed! AWT, Swing, JavaFX & SWT 4
S Combo Box action listener AWT, Swing, JavaFX & SWT 2
A Action listener von Button AWT, Swing, JavaFX & SWT 5
K Swing Wie ändere ich die default action für Drag&Drop AWT, Swing, JavaFX & SWT 6
M JButton Action Problem AWT, Swing, JavaFX & SWT 3
K Action.MNEMONIC mit char belegen. AWT, Swing, JavaFX & SWT 2
M Action.DISPLAYED_MNEMONIC_INDEX_KEY geht nicht mehr AWT, Swing, JavaFX & SWT 2
O Action Event auslösen bei unbekanntem JTextField AWT, Swing, JavaFX & SWT 3
G SWT ApplicationActionBarAdvisor Action AWT, Swing, JavaFX & SWT 11
G Action? AWT, Swing, JavaFX & SWT 2
0 (Action)Listener auslagern? AWT, Swing, JavaFX & SWT 9
K kleine frage zum Spinner (bezüglich Action) AWT, Swing, JavaFX & SWT 2
F Problem mit Action Listener in privater inneren Klasse AWT, Swing, JavaFX & SWT 6
S Buttons werden nach action grau AWT, Swing, JavaFX & SWT 4
S Action mit 2 verschiednen texten AWT, Swing, JavaFX & SWT 2
A SWT: Action über Hotkey ausführen AWT, Swing, JavaFX & SWT 2
G Action.setCheck(boolean)? AWT, Swing, JavaFX & SWT 6
A Mit der Combobox eine Action auslösen AWT, Swing, JavaFX & SWT 2
X Action aktivieren AWT, Swing, JavaFX & SWT 2
J mehrere Action Buttons mit einer ActionListener Methode AWT, Swing, JavaFX & SWT 7
A Action Listener AWT, Swing, JavaFX & SWT 14
S JMenuBar mit Action belegen! AWT, Swing, JavaFX & SWT 5
R action performed und IOException AWT, Swing, JavaFX & SWT 4
F Wo kann ich eine Action einsetzen? AWT, Swing, JavaFX & SWT 2
F Action ausführen? AWT, Swing, JavaFX & SWT 3
G Action Listener erzeugen AWT, Swing, JavaFX & SWT 6
C tree action AWT, Swing, JavaFX & SWT 8
W Bei hinzufügen der Action verliert Button Text,Tooltip, etc AWT, Swing, JavaFX & SWT 5
B Problem mit Übergabe bei action in andere Klasse AWT, Swing, JavaFX & SWT 4
X Action und Frame AWT, Swing, JavaFX & SWT 3
K Jtree und Action Event AWT, Swing, JavaFX & SWT 6
K Event Handling ComboBox Event Handler AWT, Swing, JavaFX & SWT 7
Tausendsassa Text changed event handler jTextField AWT, Swing, JavaFX & SWT 3
U JavaFX Error: Handler Method not found AWT, Swing, JavaFX & SWT 3
A Swing Click-Handler mit Threshold? AWT, Swing, JavaFX & SWT 3
G JButton mit importFiles-Funktion auf JDrawPane AWT, Swing, JavaFX & SWT 5
B JButton Search AWT, Swing, JavaFX & SWT 8
B Swing JButton mit KeyListener AWT, Swing, JavaFX & SWT 3
L JButton durch Mausklick auslösen und Enter-Taste AWT, Swing, JavaFX & SWT 2
N Erlennen ob JButton gedrückt ist AWT, Swing, JavaFX & SWT 6
D JButton Form verändern AWT, Swing, JavaFX & SWT 4
R Grafik per JButton laden und austauschen lassen AWT, Swing, JavaFX & SWT 14
SvenPittelkow Programm soll auf JButton warten bis der geklickt wurde AWT, Swing, JavaFX & SWT 1
Badebay Problem mit JButton AWT, Swing, JavaFX & SWT 2
Z Swing Drag and Drop mit einem JButton AWT, Swing, JavaFX & SWT 1
Z Swing Kann man auf JButton zeichenen AWT, Swing, JavaFX & SWT 3
J JButton Icon hinzufügen AWT, Swing, JavaFX & SWT 5
U Swing JButton mit Icon AWT, Swing, JavaFX & SWT 7
ms_cikar Jbutton erzeugt neue Buttons AWT, Swing, JavaFX & SWT 2
Drachenbauer Swing Wie ändere ich die Farbe der Konturen von jButton und jCombobox? AWT, Swing, JavaFX & SWT 18
Drachenbauer Swing Wie ändere ich die helle geklickt-Farbe von einem JButton? AWT, Swing, JavaFX & SWT 4
A Swing JButton mit Pfeiltasten bewegen AWT, Swing, JavaFX & SWT 6
F Swing Scrollbare Liste von JButton AWT, Swing, JavaFX & SWT 4
Hatsi09 JButton text layout AWT, Swing, JavaFX & SWT 9
J JButton zum ändern Der Schriftart/Schriftgröße AWT, Swing, JavaFX & SWT 2
A Swing JButton aussehen AWT, Swing, JavaFX & SWT 12
J jButton soll nach klicken eine Variable um 1 erhöhen AWT, Swing, JavaFX & SWT 2
Legi Swing JButton Icon verschiebt sich AWT, Swing, JavaFX & SWT 2
T Swing Änderung des ActionListener Events nach Klick auf JButton AWT, Swing, JavaFX & SWT 2
S Swing JButton verschwindet nach Compilieren AWT, Swing, JavaFX & SWT 8
B Swing Posistion von JButton auslesen gibt immer 0 aus AWT, Swing, JavaFX & SWT 1
J Thread kennt JButton nicht. AWT, Swing, JavaFX & SWT 11
G Swing JButton ändert (unerwünscht) Größe bei Ausführung AWT, Swing, JavaFX & SWT 4
MR._FIRE_Flower Variable setzten mit JButton AWT, Swing, JavaFX & SWT 5
S Mit JButton neues Fester öffnen und das alte schließen AWT, Swing, JavaFX & SWT 3
T JButton wird beim vergrößern des Fensters erst sichtbar AWT, Swing, JavaFX & SWT 4
R Swing Verändern der Ausrichtung JButton und neu anzeigen AWT, Swing, JavaFX & SWT 2
G Swing JButton - Keine Klickanimation AWT, Swing, JavaFX & SWT 4
Joker4632 JButton nicht sichtbar, aber funktionsfähig AWT, Swing, JavaFX & SWT 8
B Swing JButton deaktivieren, wenn nicht alle JTextFields ausgefüllt sind. AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben