GUI-Hilfe für Anfänger

Status
Nicht offen für weitere Antworten.

kevin1891

Mitglied
Hallo,

bin noch sehr "neu" in der Welt des Java-Programmierens und möchte hier um Hilfe bitten.
Ich habe folgendes Programm geschrieben ( das Programm berechnet den Durchschnitt von vier eingegebenen Zahlen und gibt den Wert anschließend aus. ) und wollte nun, dass das Programm Grafisch ( also als Fenster ) angezeigt wird. Das heißt, ich möchte, dass sich nach dem öffnen der .class Datei ein Fenster mit Buttons öffnet...

habe schon hunderte tutorials angeschaut, konnte sie aber leider nicht ganz auf mein Programm umsetzen...:(

Und hier der Source Code:

Java:
import java.util.Scanner;

class Durchschnitt{
  public static void main(String[] args){

    System.out.println("Geben Sie vier Zahlen ein und bestätigen Sie jede mit ENTER ");
    Scanner input = new Scanner(System.in);
    double total = 0;
    double grade;
    double average;
    double counter = 0;
    
    while (counter < 4){
      grade = input.nextInt();
      total = total + grade;
      counter++;
    }
    average = total/4;
    System.out.println("Der Duchschnitt dieser vier Zahlen ist: "+ average);
  }
}
 

javimka

Top Contributor
Meinst du, dass alles, was du über System.out ausgibst statt auf der Konsole in einem Fenster ausgegeben werden soll?

Also zumindest ein Fenster kannst du jedenfalls relativ einfach erstellen:
Java:
JFrame frame = new JFrame("Mein Fenster");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,200);
frame.setLocationRelativeTo(null);
frame.setVisible(true);

Dem Frame müsstest du dann noch die nötigen Komponenten anfügen, die dann anzeigen, was du angezeigt haben willst :)

//EDIT: Theoretisch sollte das Frame im Event-Dispatching-Thread erzeugt werden. Aber das erklär ich dir später, versuch einfach mal den Code oben einzufügen und dann solltest du ein Fenster haben.
 

Bartleby

Aktives Mitglied
Na das kann ich nicht ganz glauben, dass du scho hunderte Tutorials gelesen hast... In deinem Programm ist ja absolut nichts davon zu sehen... Vielleicht solltest du noch mal nach dem Stichwort "Swing" suchen.
 

kevin1891

Mitglied
Genau das meine ich! Ich möchte das gesamte Programm als Fenster ausführen!

Und wo genau muss ich diesen obigen Text in den Source Code einfügen?

Danke
 

kevin1891

Mitglied
Meinst du, dass alles, was du über System.out ausgibst statt auf der Konsole in einem Fenster ausgegeben werden soll?

Also zumindest ein Fenster kannst du jedenfalls relativ einfach erstellen:
Java:
JFrame frame = new JFrame("Mein Fenster");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,200);
frame.setLocationRelativeTo(null);
frame.setVisible(true);

Dem Frame müsstest du dann noch die nötigen Komponenten anfügen, die dann anzeigen, was du angezeigt haben willst :)

//EDIT: Theoretisch sollte das Frame im Event-Dispatching-Thread erzeugt werden. Aber das erklär ich dir später, versuch einfach mal den Code oben einzufügen und dann solltest du ein Fenster haben.


OK das Fenster habe ich jetzt......wie bekomme ich jetzt das Programm ins Fenster? Weil das Fenster ist bis jetzt leer.... :/
 

javimka

Top Contributor
Ich habe mal ein Beispiel Programm gemacht, das auf sehr einfach Weise fast das machst, was du willst:
Java:
import javax.swing.JEditorPane;
import javax.swing.JFrame;

public class Konsole extends JFrame {

	private JEditorPane editor;
	
	public Konsole() {
		super("Konsole");
		editor = new JEditorPane();
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		add(editor);
		setSize(300,200);
		setLocationRelativeTo(null);
		setVisible(true);
	}
	
	public void print(String text) {
		editor.setText(editor.getText()+text);
	}
	
	public void println(String text) {
		editor.setText(editor.getText()+text+"\n");
	}
	
	
	public static void main(String[] args) {
		Konsole konsole = new Konsole();
		konsole.print("Huhu ");
		konsole.println("2 * 2 = "+4);
		konsole.println("das ist "+true);
	}
}

Statt über System.out.println Texte auszugeben, gibst du sie hier einfach über konsole.print bzw. konsole.println aus. Um meine Klasse zu nutzen instanzierst du am Anfang von DEINEM main einfach [c]Konsole konsole = new Konsole();[/c] und ersetzt dann alle System.println(...) durch konsole.println(...).
Hoffe, es hilft.
 

kevin1891

Mitglied
Gut,

klingt logisch, danke!

Eine letzte Frage noch: Das mit dem instanzieren....wo GENAU muss ich "Konsole konsole = new Konsole();" im meinem Programm einfügen? Sorry, bin ein nOOOb:(
 

javimka

Top Contributor
Das musst du vor deinem ersten System.out.println Aufruf machen, weil du ja dann die konsole anstelle des System.out.println brauchst. Also am besten als allerersten Befehl in der main-Methode.
 

kevin1891

Mitglied
so jetzt habe ich diese "Konsole konsole = new Konsole();" eingefügt und "konsole.println" auch....

jetzt erscheint ein fenster mit meinem Text aber ich kann nichts eingeben das ich dann auch bestätigen kann.......also ist irgendwas mit dem Scanner nicht korrekt.......?
 

javimka

Top Contributor
Dein Scanner funktioniert schon korrekt, aber ich dachte, du wolltest nur den Output im Fenster anzeigen. Um da auch Inputs einzufügen müsstest du ziemlich was rumflicken. Einfacher würde es so gehen, wenn du unter die EditorPane ein JTextfied einfügst, wo dann die Inputs eingegeben werden. Dieser TextField müsstest du dann einen ActionListener anhängen, der die Eingaben dann dem Programm übergibt. Für diese Aufgabe musst du aber noch so einiges nachlesen.
 

javimka

Top Contributor
Dein Programm ist eigentlich so einfach, dass sich eine GUI dafür auch einfacher realisieren lässt:
Java:
import java.awt.*;
import java.awt.event.*;
import java.text.DecimalFormat;

import javax.swing.*;
import javax.swing.border.EmptyBorder;

public class MyGUI extends JFrame {

	public MyGUI() {
		super("MyGUI");
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		
		final int n = 4;
		final JLabel lblResult = new JLabel("Resultat: ");
		lblResult.setAlignmentX(LEFT_ALIGNMENT);
		
		JPanel pnlFields = new JPanel(new GridLayout(1,n,5,0));
		pnlFields.setBorder(new EmptyBorder(5,0,5,0));
		
		final JFormattedTextField[] txfs = new JFormattedTextField[n];
		KeyAdapter kl = new KeyAdapter() {
			@Override
			public void keyReleased(KeyEvent event) {
				int sum = 0;
				for (int i=0;i<n;i++) {
					try {
						sum += Integer.parseInt(txfs[i].getText());
					} catch (NumberFormatException e) {} // keine Zahl im Feld
				}
				lblResult.setText("Resultat = "+sum/n);
			}
		};
		
		for (int i=0;i<n;i++) {
			txfs[i] = new JFormattedTextField(new DecimalFormat("0"));
			txfs[i].setText("0");
			txfs[i].addKeyListener(kl);
			pnlFields.add(txfs[i]);
		}
		
		pnlFields.setAlignmentX(LEFT_ALIGNMENT);
		pnlFields.setMaximumSize(new Dimension(
				Integer.MAX_VALUE,
				pnlFields.getPreferredSize().height ));
		
		JPanel pnl = new JPanel();
		pnl.setLayout(new BoxLayout(pnl,BoxLayout.Y_AXIS));
		pnl.add(new JLabel("Geben Sie "+n+" zahlen ein",JLabel.LEFT));
		pnl.add(pnlFields);
		pnl.add(lblResult);
		pnl.add(Box.createVerticalGlue());
		pnl.setBorder(new EmptyBorder(10,10,10,10));
		
		add(pnl);
		pack();
		setLocationRelativeTo(null);
	}
	
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			@Override
			public void run() {
				new MyGUI().setVisible(true);
			}
		});
	}
}
 

kevin1891

Mitglied
Heh ok vielen Dank Javimka........ich sehe Java ist doch ziemlich ne komplexe Sache :D

kannst du mir vielleicht sagen wo und wie DU Java so gut gelernt hast?! Gibt es da vllt ne gute Internetseite, gute Tutorials?

oder hast du Java während des Studierens gelernt?

Grüße
 

Scrimau

Mitglied
ich sehe Java ist doch ziemlich ne komplexe Sache :D
Grüße

So komplex ist es nicht, mit einem GUI-Builder oder einer guten Worksuite (kann NetBeans nur empfehlen) geht das auch viel einfacher, dann ziehste die Komponenten einfach auf ein JFrame und dann musst du das nicht alles per Hand eingeben sondern kannst dich dem Quelltext zuwenden.
 

hdi

Top Contributor
GUI-Builder oder einer guten Worksuite (kann NetBeans nur empfehlen) geht das auch viel einfacher
einfacher heisst in dem Fall: Man lernt nix über die Komponenten, Layouts usw.
sondern kannst dich dem Quelltext zuwenden.
Das ist auch so ne Sache, der generierte Quelltext ist der letzte Rotz. Ich finde solche Tools kann man zur Planung des GUI-Designs verwenden, aber niemals für einen Release. Da sollte man das schon selber programmieren, und spätestens dann muss man wissen wie das funzt.

Naja also um eine zweite Meinung einzustreuen: Finger weg von solchen Tools! Ich programmier seit fast 3 Jahren und hab sowas noch nie verwendet, und ich glaube das hat mir auch nicht geschadet.

Links für den Anfang:
How to Make Frames (Main Windows) (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)
Using Layout Managers (The Java™ Tutorials > Creating a GUI With JFC/Swing > Laying Out Components Within a Container)

Und anonsten einfach hier Fragen
 

javimka

Top Contributor
kannst du mir vielleicht sagen wo und wie DU Java so gut gelernt hast?!Grüße

Ich habe alles aus (online) Büchern gelernt. Handbuch der Java-Programmierung, 4. Auflage
Einen Monat lang habe ich jeden Tag daraus gelesen und mir die Befehle für all die Klassen auf einen Schreibblock geschrieben :lol: Im Nachhinein würde ich es wohl anders machen, aber damals hatte ich ja noch keine Ahnung von der Java API ;)

Dann habe ich klein angefangen Frames zusammenzubasteln und natürlich auch all die Anfängerfehler gemacht wie getGraphics aufzurufen, while-Schleifen in ActionListener zu stecken, MVC in nur einer Klasse zu programmieren usw. Nebenbei einfach viele weitere Bücher gelesen, z.B. "Java ist auch eine Insel", "Effective Java", "Filthy Rich Clients". Einen GUI-Builder habe ich nie verwendet.
Das erste Jahr habe ich auch nur in einem Texteditor programmiert, der gerade mal die Syntax hervorgehoben hat, aber compiliert und laufen lassen habe ich alles über die Konsole. Dadurch lernt man dann auch die einzelnen Methoden auswendig. Jetzt benutze ich Eclipse.

Ich programmiere jetzt seit etwas 2 Jahren mit Java und wenn du interessiert bist und bleibst, wirst du das alles auch bald können :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A hilfe für flowlayout AWT, Swing, JavaFX & SWT 6
Kenan89 Java FX GUI Hilfe für erste Java FX App AWT, Swing, JavaFX & SWT 8
Jats Hilfe bei FocusListener für Taschenrechner AWT, Swing, JavaFX & SWT 4
Spin Hilfe - Erklärungsbedarf für Kreis AWT, Swing, JavaFX & SWT 5
R F1 Hilfe für Felder bei InternalFrame´s AWT, Swing, JavaFX & SWT 3
B Ich brauch Hilfe! Für Könner ein Kinderspiel! AWT, Swing, JavaFX & SWT 7
I Hilfe bei dem Erstellen einer SQL Abfrage aus gewählten JComboBoxen AWT, Swing, JavaFX & SWT 5
JavaBeginner22 Button Hilfe AWT, Swing, JavaFX & SWT 0
ExceptionOfExpectation Textdarstellung auf einem Canvas mit Hilfe von repaint(); AWT, Swing, JavaFX & SWT 6
senol JOptionPane hilfe!!! :(((( AWT, Swing, JavaFX & SWT 32
donnico2 Objekte in der GUI ausgeben mit Hilfe einer DAO AWT, Swing, JavaFX & SWT 1
J Swing Hilfe bei Layout AWT, Swing, JavaFX & SWT 2
Zrebna JavaFX-Projekt mit Bildern funktioniert nicht - um Hilfe wird gebeten AWT, Swing, JavaFX & SWT 14
F BorderLayout Hilfe bei Anzeige AWT, Swing, JavaFX & SWT 2
J Hilfe beim tablevies AWT, Swing, JavaFX & SWT 2
T Swing Hilfe - Selbst Informatik Lehrer konnte mir nicht weiter Helfen AWT, Swing, JavaFX & SWT 2
W Swing Hilfe beim Einbinden von Bildern in einem JFrame AWT, Swing, JavaFX & SWT 8
A Swing TicTacToe-Bitte um Hilfe AWT, Swing, JavaFX & SWT 32
T Bitte um Hilfe AWT, Swing, JavaFX & SWT 2
T Hilfe bei Code AWT, Swing, JavaFX & SWT 2
S Hilfe bei Java Gui Anfänger AWT, Swing, JavaFX & SWT 5
J Warum geht das nicht? if-else usw..... compilieren geht nicht -- HILFE!!! AWT, Swing, JavaFX & SWT 10
M Problem mit Layoutmanagern... Hilfe wäre sehr nett. AWT, Swing, JavaFX & SWT 2
T Hilfe was mus ich tun um das fertige JfxFenster zu sehen AWT, Swing, JavaFX & SWT 2
R Hilfe beim ändern des Hintergrundes eines JFrames AWT, Swing, JavaFX & SWT 9
N Swing Benötige Hilfe um ein Swing Canvas zu speichern AWT, Swing, JavaFX & SWT 4
X Swing JButton's zum JScrollPane hinzufügen geht nicht. Bitte um Hilfe. AWT, Swing, JavaFX & SWT 9
C Gesucht: Hilfe beim programmieren. AWT, Swing, JavaFX & SWT 1
V Swing Brauche Hilfe mit Label AWT, Swing, JavaFX & SWT 3
C Hilfe beim programmieren mit studiumgebundenes Projekt AWT, Swing, JavaFX & SWT 1
T Swing JTable Zeile mit ausgelesenen Werten mit Hilfe von einem Button hinzufügen AWT, Swing, JavaFX & SWT 1
A JavaFX Hilfe beim Design eines Quiz AWT, Swing, JavaFX & SWT 2
H Swing Hilfe bei GUI AWT, Swing, JavaFX & SWT 4
T HILFE wie lösche ich gezeichnetes per tastendruck AWT, Swing, JavaFX & SWT 1
R Swing JOptionPane Fehlermeldung- bitte um Hilfe! AWT, Swing, JavaFX & SWT 4
Tausendsassa ImageIcon?! Hilfe! AWT, Swing, JavaFX & SWT 10
C Hilfe bei JSpinner und JList AWT, Swing, JavaFX & SWT 1
J GridBagLayout mit Hilfe einer For-Schleife befüllen AWT, Swing, JavaFX & SWT 1
M Hilfe bei Performanceverbesserung AWT, Swing, JavaFX & SWT 34
B Hilfe welches Layout brauch ich AWT, Swing, JavaFX & SWT 4
M SwingWorker Hilfe! AWT, Swing, JavaFX & SWT 10
K Swing Brauche Hilfe AWT, Swing, JavaFX & SWT 6
O AWT Performance und Bug behebung[brauche Hilfe] AWT, Swing, JavaFX & SWT 2
K Swing Konsolen Programm in GUI - Suche Hilfe bei Konsolenausgabe AWT, Swing, JavaFX & SWT 2
K Viele Textfield mit Hilfe eines MousListener leeren - möglich? AWT, Swing, JavaFX & SWT 8
I ausgewählte Zeile mit Hilfe der Tastatur löschen! AWT, Swing, JavaFX & SWT 3
B Rechteck Mit Hilfe Von Timeline, KeyFrames animieren AWT, Swing, JavaFX & SWT 3
J LayoutManager Hilfe bei Wahl des Layouts AWT, Swing, JavaFX & SWT 9
F Hilfe beim ausschalten von Robot AWT, Swing, JavaFX & SWT 7
N Hilfe bei Memory-Spiel AWT, Swing, JavaFX & SWT 18
L Swing Hilfe bei JTabelModel gesucht AWT, Swing, JavaFX & SWT 4
B Hilfe zu JTable und JTabbedPane AWT, Swing, JavaFX & SWT 18
K Hilfe bei Labels AWT, Swing, JavaFX & SWT 3
S Hilfe beim Lernprozess von java3d AWT, Swing, JavaFX & SWT 20
T JLayeredPanel - Hilfe AWT, Swing, JavaFX & SWT 7
C Swing Hilfe bei umsetzung eines Stundenplans. AWT, Swing, JavaFX & SWT 7
K Swing Hilfe beim JTree! AWT, Swing, JavaFX & SWT 3
N Hilfe bei Panels! AWT, Swing, JavaFX & SWT 11
F Swing Syntaxhighlighting Hilfe AWT, Swing, JavaFX & SWT 5
Jats Bitte um Hilfe bei JComboBox mit Array AWT, Swing, JavaFX & SWT 6
N Swing nach Fensterrand Action ausführen? HILFE AWT, Swing, JavaFX & SWT 7
R Hilfe bei Bachelorrabeit. Seitenvorschau AWT, Swing, JavaFX & SWT 7
L Mein Kopf dreht sich... Brauche Hilfe beim GUI gestalten AWT, Swing, JavaFX & SWT 10
G Swing Hilfe-Fenster erstellen AWT, Swing, JavaFX & SWT 20
E LayoutManager Hilfe ein GridbagLayout!! AWT, Swing, JavaFX & SWT 7
J Schulprojekt und braucht hilfe AWT, Swing, JavaFX & SWT 54
G Hilfe! Command Pattern an easy ImageViewer? AWT, Swing, JavaFX & SWT 13
radiac Hilfe bei GUI AWT, Swing, JavaFX & SWT 22
N Hilfe bei erstellen eines Bibliotheksprogrammes AWT, Swing, JavaFX & SWT 15
H Swing Jtable wird nicht angezeigt..hilfe!! AWT, Swing, JavaFX & SWT 16
M DRINGEND HILFE TextPane RECHTSBÜNDIG AWT, Swing, JavaFX & SWT 2
B Swing Hilfe zu JTextField AWT, Swing, JavaFX & SWT 2
J Brauche ganz dringend Hilfe!!! AWT, Swing, JavaFX & SWT 5
V Bitte um Hilfe bei nem Taschenrechner AWT, Swing, JavaFX & SWT 8
F NullPointerException - HILFE!! AWT, Swing, JavaFX & SWT 20
G Hilfe!!!Sudoku AWT, Swing, JavaFX & SWT 19
M Swing JButton hilfe AWT, Swing, JavaFX & SWT 3
M brauche Hilfe um Einträge aus Jlist zu löschen AWT, Swing, JavaFX & SWT 4
O Bitte um Hilfe bei ComboBox in TableHeader AWT, Swing, JavaFX & SWT 9
M Erstellen eines Hilfe-Fenster bzw"Erste-Schritte" AWT, Swing, JavaFX & SWT 2
G Hilfe beim Erstellen eines eigenen Html-Editors! AWT, Swing, JavaFX & SWT 4
G Hilfe Meine JPanels verschwinden im Müll AWT, Swing, JavaFX & SWT 10
G Hilfe AWT, Swing, JavaFX & SWT 8
N ausrichtung Button - hilfe bitte AWT, Swing, JavaFX & SWT 2
T Hilfe zu Events? AWT, Swing, JavaFX & SWT 6
A Ini Datei Auswerten - HILFE! AWT, Swing, JavaFX & SWT 6
D Hilfe bei GUI-Elementen in Java AWT, Swing, JavaFX & SWT 9
D Grafikeinsteiger sucht/braucht Hilfe. Wäre Nett ! AWT, Swing, JavaFX & SWT 3
K Mein Informatikprojekt läuft aus dem Ruder Hilfe. F1 ^^ AWT, Swing, JavaFX & SWT 5
S Hilfe! Bekomme Daten nicht ausgelesen AWT, Swing, JavaFX & SWT 3
M hilfe! probleme mit meinem programm AWT, Swing, JavaFX & SWT 5
V Hilfe :( bekomme textarea nicht versetzt AWT, Swing, JavaFX & SWT 2
M Hilfe ich komme nicht an ein JTextArea AWT, Swing, JavaFX & SWT 4
J Hilfe CardLayout AWT, Swing, JavaFX & SWT 3
C Hilfe bei JInternalFrame AWT, Swing, JavaFX & SWT 6
G BubbleSort mit Hilfe einer Balkengrafik visualisieren AWT, Swing, JavaFX & SWT 9
G Leider trotz allem kein Icon :( Brauche Hilfe AWT, Swing, JavaFX & SWT 3
S sinuskurve hilfe! AWT, Swing, JavaFX & SWT 2
D JSplittPane - unsichtbarer Rahmen? hilfe ;) AWT, Swing, JavaFX & SWT 2
G Selbstprogrammierter Editor - brauche Hilfe AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben