Erste Versuche einer Grafischen Oberfläche

Patrick08

Mitglied
Hallo,

Ich bin dabei mein erstes Javaprogramm mit einer grafischen Oberfläche zu programmieren. Doch schon bei den Anfängen im Design komme ich nicht weiter... :shock:

Java:
import java.awt.*;
import java.awt.event.*;

public class MyFrame extends Frame
{
  
  Button show = new Button("Anzeige");
  Button del = new Button("Loeschen");

  
  public MyFrame () 
  {
    setSize(800,600);
    setTitle("Schaltjahrberechnung");
    //Fenstergröße
    addWindowListener(new MyWindowListener());
    //Platzierung der Buttons
    show.setBounds(25,450, 300, 100);
    add(show);
    del.setBounds(475,450,300,100);
    add(del);
       
       
    setVisible(true);                            
  }

  class MyWindowListener extends WindowAdapter
  {
    public void windowClosing(WindowEvent e)
    {
      e.getWindow().dispose();                   
      System.exit(0); 
    }    	
  }   
  
  public static void main (String args[]) 
  {
    new MyFrame ();
  }
}


Ziel soll es sein das er mir die Buttons an der unteren Kante nebeneinander anzeigt. Aber egal wie ich es anstelle ist immer einer der Buttons so groß wie mein gesamtes Fenster.
Ist sicher nur ein kleiner Hänger, aber trotzdem danke schonmal für jeden Ratschlag...
 
1.) verwendest du absichtlich awt? die ganzen klassen die du verwendest gibts auch mit J davor von swing, also JButton, JFrame,...

2.) du möchtest deine Buttons selbst positionieren, es gibt sogenannte LayoutManager die das für dich übernehmen können, wenn du das nicht willst musst du das "Null-Layout" setzen: setLayout(null);
 
Hallo Niki,

awt ist absichtlich gewählt, da wir es in unseren Beispielen so vorgegeben haben...
Danke für den Tip mit dem Null-Layout... :toll:

Ich denke im Laufe des Weiteren Programmierens werd ich hier nochmal Hilfe benötigen...
 
! Edit - Update...

Soo...

Die Oberfläche ist fertig die Methoden soweit auch, ich kann die Datei auch compilieren, aber wenn ich dann versuche das Programm auszuführen passiert garnichts 🙁

Java:
import java.awt.*;
import java.awt.event.*;

public class MyFrame extends Frame
{
  
  Button show = new Button("Anzeige");
  Button del = new Button("Loeschen");
  TextField EnterYear = new TextField();
  TextField Out = new TextField();

  
  public void MyFrame () 
  {
    setLayout(null);
    setSize(800,600);
    setTitle("Schaltjahrberechnung");
    //Fenstergröße
    addWindowListener(new MyFrameListener());
    //Platzierung der Buttons
    show.setBounds(25,450, 300, 100);
    add(show);
    del.setBounds(475,450,300,100);
    add(del);
    //Buttons einem Listener zuordnen
    show.addActionListener(new ButtonKlick());
    del.addActionListener(new ButtonKlick());
    
	//Erstellen der Labels
    Label l1 = new Label("Das Jahr");
    Label l2 = new Label("ist");
    Label l3 = new Label("Schaltjahr!");
    l1.setBounds(25, 230, 100, 50);
    l2.setBounds(390, 230, 100, 50);
    l3.setBounds(660, 230, 110, 50);
    l1.setFont(new Font("Arial",Font.BOLD, 20));
    l2.setFont(new Font("Arial",Font.BOLD, 20));
    l3.setFont(new Font("Arial",Font.BOLD, 20));
    add(l1);
    add(l2);
    add(l3);
    setVisible(true);
    
    EnterYear.setBounds(160,220,150,50);
    add(EnterYear);

    Out.setBounds(500,220,150,50);
    add(Out);
  }
  
	//Methode um auf Schaltjahr zu testen
	boolean Schaltjahr(int jahr)		{
			if ( jahr % 4 == 0 )
				if ( jahr % 100 == 0 )
					if ( jahr % 400 == 0 )
						return true;
					else
						return false;
				else
					return true;
			else
				return false;
	}
	
	class ButtonKlick implements ActionListener {
		
		public void actionPerformed(ActionEvent e)
		{
			Object o = e.getSource();
		
			if ( o == show )
			{
				//Textfeld auslesen und Zahl als string speichern
				String Input = EnterYear.getText();
			
				//string in Zahl umwandeln
				int jahr;	
				jahr = Integer.parseInt(Input);
						
				//Aufrufen des Schaltjahrtests
				if (Schaltjahr (jahr))
					Out.setText("EIN");
				else
					Out.setText("KEIN");
			}
			else if ( o == del )
			{
				//TExtfelder leeren um neue Eingabe zu ermöglichen
				Out.setText("");
				EnterYear.setText("");			
			}
		}
	}


  class MyFrameListener extends WindowAdapter
  {
    public void windowClosing(WindowEvent e)
    {
      e.getWindow().dispose();                   
      System.exit(0); 
    }    	
  }   
  
  public static void main (String args[]) 
  {
    new MyFrame ();
  }
}
 
Zuletzt bearbeitet:
Konstruktor ohne void

Java:
public MyFrame () 
  {
	  System.out.println("jo wurde ausgeführt");

sonst ist es eine normale Methode und wird bei new ... nicht ausgeführt...
 
Von Exception-Behandlungen habe ich gerade die Schn*** voll :bae:
Und laut Aufgabe nicht gefordert, also werd ich das mal dezent ignorieren, dass da jemand etwas anderes als ne Zahl eingeben könnte... :applaus:

Over and out! 😀
 

Zurück
Oben