Hallo Leute,
ich habe vor einiger Zeit mit sämtlichen Tutorials und Büchern versucht mir Java beizubringen.
Habe aber dann festgestellt, dass das ständige durchackern von Tutorials mir nichts bringt und ich nicht vorwärtskomme und im Grunde kaum Ahnung, trotz Tutorials, vom Programmieren habe. Daher habe ich beschlossen einfach mit dem Programmieren loszulegen und einfach mal ein (Mini)Projekt nach dem andern zu programmieren und dadurch mir die Praxis beizubringen.
Gestern Abend also angefangen und heute mein erstes Programm fertiggestellt: Ein (grottenschlechter) GUI-Taschenrechner
Meine Bitte: Ich weiß es ist grauenvoll programmiert, daher wollte ich euch bitten mal drüberzuschauen und mich auf sämtlichen "Fehlern" hinweisen? Bzw. Verbesserungsvorschläge geben?
Wie würdet ihr an meiner Stelle mit dem Lernen weitermachen?
Ich bin sehr unsicher, ob das nun der richtige Weg ist...
Wäre euch sehr dankbar.
Hier mein Code:
Main:
ActionHandler:
ich habe vor einiger Zeit mit sämtlichen Tutorials und Büchern versucht mir Java beizubringen.
Habe aber dann festgestellt, dass das ständige durchackern von Tutorials mir nichts bringt und ich nicht vorwärtskomme und im Grunde kaum Ahnung, trotz Tutorials, vom Programmieren habe. Daher habe ich beschlossen einfach mit dem Programmieren loszulegen und einfach mal ein (Mini)Projekt nach dem andern zu programmieren und dadurch mir die Praxis beizubringen.
Gestern Abend also angefangen und heute mein erstes Programm fertiggestellt: Ein (grottenschlechter) GUI-Taschenrechner
Meine Bitte: Ich weiß es ist grauenvoll programmiert, daher wollte ich euch bitten mal drüberzuschauen und mich auf sämtlichen "Fehlern" hinweisen? Bzw. Verbesserungsvorschläge geben?
Wie würdet ihr an meiner Stelle mit dem Lernen weitermachen?
Ich bin sehr unsicher, ob das nun der richtige Weg ist...
Wäre euch sehr dankbar.
Hier mein Code:
Main:
Code:
import java.awt.Color;
import java.util.Scanner;
import javax.swing.*;
public class Main{
//=====================================
static JPanel panel;
static JButton button;
static JLabel label;
static JLabel label2;
static JLabel label3;
static JFormattedTextField tfName;
static JFormattedTextField tfName2;
public Main() {
//==============Fenster================
JFrame meinJFrame = new JFrame("Mein Button");
meinJFrame.setSize(500, 500);
meinJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
meinJFrame.setLocationRelativeTo(null);
meinJFrame.requestFocus();
//==============Panel1==============
panel = new JPanel();
panel.setLayout(null);
//=============Button1================
// JButton mit Text "Rechnen" wird erstellt
button = new JButton("Rechnen");
button.setBounds(180, 200, 150, 40);
button.setFocusPainted(false);
button.setBorder(BorderFactory.createLineBorder(Color.BLACK));
button.addActionListener(new ActionHandler());
// JButton wird dem Panel hinzugefügt
panel.add(button);
meinJFrame.add(panel);
//=============Label1=================
label = new JLabel("<html>Schreibe zwei Zahlen in die <p/> "+" weißen Felder die addiert werden sollen <p/> "+" und bestaetige mit Enter. <p/> "+" Danach klicke auf Rechnen!</html>",JLabel.CENTER);
label.setVerticalAlignment(JLabel.TOP);
label.setBounds(0,0,550,100);
panel.add(label);
//=============Label2=================
label2 = new JLabel("<html><font size=120>+</font></html>");
label2.setHorizontalAlignment(JLabel.CENTER);
label2.setBounds(0,0,500,210);
panel.add(label2);
//=========Textfield==============
// Textfeld wird erstellt
// Text und Spaltenanzahl werden dabei direkt gesetzt
tfName = new JFormattedTextField();
// Schriftfarbe wird gesetzt
tfName.setForeground(Color.BLACK);
// Hintergrundfarbe wird gesetzt
tfName.setBackground(Color.WHITE);
tfName.setBounds(150, 100, 50, 20);
// Textfeld wird unserem Panel hinzugefügt
panel.add(tfName);
tfName.addActionListener(new ActionHandler());
//=========Textfield2==============
// Textfeld wird erstellt
// Text und Spaltenanzahl werden dabei direkt gesetzt
tfName2 = new JFormattedTextField();
// Schriftfarbe wird gesetzt
tfName2.setForeground(Color.BLACK);
// Hintergrundfarbe wird gesetzt
tfName2.setBackground(Color.WHITE);
tfName2.setBounds(300, 100, 50, 20);
// Textfeld wird unserem Panel hinzugefügt
panel.add(tfName2);
tfName2.addActionListener(new ActionHandler());
meinJFrame.setVisible(true); //Immer ganz zum Schluss, da sonst nachkommende Elemente nicht gezeichnet werden
}
public static void main(String[] args) {
new Main();
}
}
ActionHandler:
Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JLabel;
public class ActionHandler implements ActionListener {
static String inputx;
static String inputy;
static int erg;
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()== Main.tfName || e.getSource()== Main.tfName2) {
inputx = Main.tfName.getText();
Integer.parseInt(inputx);
System.out.println(inputx);
inputy = Main.tfName2.getText();
Integer.parseInt(inputy);
System.out.println(inputy);
erg = Integer.parseInt(inputx) + Integer.parseInt(inputy);
//System.out.println(erg);
}
if(e.getSource()== Main.button) { //Damit ueberprueft man, ob der button gedrueckt wurde.
System.out.println(erg);
Main.label3 = new JLabel();
Main.label3.setHorizontalAlignment(JLabel.CENTER);
Main.label3.setBounds(0,0,500,310);
Main.label3.setText("Das Ergebnis ist "+String.valueOf(erg));
Main.panel.add(Main.label3);
System.out.println("gezeichnet");
Main.panel.repaint(); //Damit wird panel neu gezeichnet und label3 somit aktualisiert
}
}
}