O
oODARIOo2
Gast
hi liebe community,
ich bin ein totaler anfänger in java und habe versucht ein kleines Programm zu schreiben. Man kann damit sogenannte milos (name kommt von privater vorgeschichte) zählen und dann ein verhältnis ausrechnen. Das problem ist dass nachdem ich ein swing komponent entfernt habe und ein neues hinzugefügt, das neue nicht angezeigt wird, ausser ich verändere die grösse des Fensters. Ich dachte das liegt daran dass es das dann Fenster neu ladet weil es dabei die paint() methode aufruft, und habe somit eine repaint() methode eingefügt, die aber irgendwie nichts nützt...
hier noch der quellcode:
danke schon im voraus
ich bin ein totaler anfänger in java und habe versucht ein kleines Programm zu schreiben. Man kann damit sogenannte milos (name kommt von privater vorgeschichte) zählen und dann ein verhältnis ausrechnen. Das problem ist dass nachdem ich ein swing komponent entfernt habe und ein neues hinzugefügt, das neue nicht angezeigt wird, ausser ich verändere die grösse des Fensters. Ich dachte das liegt daran dass es das dann Fenster neu ladet weil es dabei die paint() methode aufruft, und habe somit eine repaint() methode eingefügt, die aber irgendwie nichts nützt...
hier noch der quellcode:
Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.lang.Math.*;
class milorechner {
double miloeinheiten = 0;
double endwertberechner = 0;
boolean rechenbeginner = false;
boolean neustarter = false;
boolean weiterfahrer = false;
int schleiffe = 1;
double minuten;
double endwert;
String ergebnis;
JFrame frame;
JButton milozähler;
NumberField anzahlminuten;
JButton rechenausloeser;
public static void main(String []args) {
milorechner ausführer = new milorechner();
ausführer.los();
}
public void los() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton milozähler = new JButton("+1");
Font zählerfont = new Font("Calibri", Font.PLAIN, 90);
milozähler.setFont(zählerfont);
milozähler.addActionListener(new zählerListener());
frame.getContentPane().add(BorderLayout.CENTER, milozähler);
JPanel panel = new JPanel();
frame.getContentPane().add(BorderLayout.SOUTH, panel);
NumberField anzahlminuten = new NumberField();
anzahlminuten.setDouble(0);
panel.add(BorderLayout.WEST, anzahlminuten);
frame.setSize(480,800);
frame.setVisible(true);
JLabel endzeiger = new JLabel();
Font endzeigerfont = new Font("Calibri", Font.PLAIN, 30);
endzeiger.setFont(endzeigerfont);
JButton neustart = new JButton("neustarten");
neustart.addActionListener(new neustartListener());
JButton weiterfahren = new JButton("weiterfahren");
weiterfahren.addActionListener(new weiterfahrenListener());
JButton rechenausloeser = new JButton("berechne milo/min");
rechenausloeser.addActionListener(new rechenListener());
panel.add(BorderLayout.CENTER, rechenausloeser);
while (schleiffe == 1) {
if (rechenbeginner == true) {
minuten = anzahlminuten.getDouble();
endwertberechner = miloeinheiten/minuten;
endwert = Math.round(endwertberechner*100)/100.0;
ergebnis = String.valueOf(endwert);
panel.removeAll();
endzeiger.setText(ergebnis + " milo/min ");
panel.add(BorderLayout.CENTER,endzeiger);
panel.add(BorderLayout.EAST, neustart);
panel.add(BorderLayout.EAST, weiterfahren);
rechenbeginner = false;
}
if (neustarter == true) {
anzahlminuten.setDouble(0);
panel.removeAll();
panel.add(BorderLayout.WEST, anzahlminuten);
panel.add(BorderLayout.CENTER, rechenausloeser);
miloeinheiten = 0;
neustarter = false;
}
if (weiterfahrer == true) {
anzahlminuten.setDouble(0);
panel.removeAll();
panel.add(BorderLayout.WEST, anzahlminuten);
panel.add(BorderLayout.CENTER, rechenausloeser);
weiterfahrer = false;
}
panel.repaint();
}
}
public class zählerListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
miloeinheiten++;
}
}
public class rechenListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
rechenbeginner = true;
}
}
public class neustartListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
neustarter = true;
}
}
public class weiterfahrenListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
weiterfahrer = true;
}
}
}
danke schon im voraus