Hallo liebe Community,
ich möchte, dass Java mit gleichzeitig das Ergebnis für Kelvin und Fahrenheit liefert, wenn ich auf den Button "Umrechnen" klicke. Mir gibt das Programm dann nur die Temperatur in °K an.
Außerdem möchte ich, dass sich das Fenster schließt, wenn man auf den Button Ende klickt. Wie kriege ich das hin?
Was mache ich falsch bzw was fehlt noch im Quellcode?
Vielen Dank schon mal im Voraus
ich möchte, dass Java mit gleichzeitig das Ergebnis für Kelvin und Fahrenheit liefert, wenn ich auf den Button "Umrechnen" klicke. Mir gibt das Programm dann nur die Temperatur in °K an.
Außerdem möchte ich, dass sich das Fenster schließt, wenn man auf den Button Ende klickt. Wie kriege ich das hin?
Was mache ich falsch bzw was fehlt noch im Quellcode?
Java:
package gui;
import com.cloudgarden.layout.AnchorLayout;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.text.NumberFormat;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JLabel;
import javax.swing.JProgressBar;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;
public class JFrame1 extends javax.swing.JFrame {
{
//Set Look & Feel
try {
javax.swing.UIManager.setLookAndFeel("com.jgoodies.looks.plastic.Plastic3DLookAndFeel");
} catch(Exception e) {
e.printStackTrace();
}
}
private JLabel jLFahrenheit;
private JTextField jTFFahrenheit;
private JLabel jLCelsius;
private JTextField jTFCelsius;
private JTextField jTFKelvin;
private JLabel jLKelvin;
private JButton BtnEnde;
private JButton BtnUmrechnen;
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame1 inst = new JFrame1();
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}
});
}
public JFrame1() {
super();
initGUI();
}
private void initGUI() {
this.setTitle("Umrechung Fahrenheit in Celsius");
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
getContentPane().setLayout(null);
{
jLFahrenheit = new JLabel();
getContentPane().add(jLFahrenheit);
jLFahrenheit.setText("Grad Fahrenheit");
jLFahrenheit.setBounds(12, 80, 93, 16);
}
{
jTFFahrenheit = new JTextField();
getContentPane().add(jTFFahrenheit);
jTFFahrenheit.setBounds(12, 102, 150, 23);
}
{
jLCelsius = new JLabel();
getContentPane().add(jLCelsius);
jLCelsius.setText("Grad Celsius");
jLCelsius.setBounds(12, 18, 65, 16);
}
{
jTFCelsius = new JTextField();
getContentPane().add(jTFCelsius);
jTFCelsius.setBounds(12, 40, 150, 23);
}
{
BtnUmrechnen = new JButton();
getContentPane().add(BtnUmrechnen);
BtnUmrechnen.setText("Umrechnen");
BtnUmrechnen.setBounds(237, 40, 127, 23);
BtnUmrechnen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
BtnUmrechnenActionPerformed(evt);
}
});
}
{
BtnEnde = new JButton();
getContentPane().add(BtnEnde);
BtnEnde.setText("Ende");
BtnEnde.setBounds(237, 102, 127, 23);
}
{
jLKelvin = new JLabel();
getContentPane().add(jLKelvin);
jLKelvin.setText("Grad Kelvin");
jLKelvin.setBounds(12, 143, 60, 16);
}
{
jTFKelvin = new JTextField();
getContentPane().add(jTFKelvin);
jTFKelvin.setBounds(12, 165, 150, 23);
}
pack();
this.setSize(392, 238);
} catch (Exception e)
{
//add your error handling code here
e.printStackTrace();
}
}
private void BtnUmrechnenActionPerformed(ActionEvent evt) {
System.out.println("BtnUmrechnen.actionPerformed, event="+evt);
double Celsius = 0;
try {
Celsius = Double.parseDouble(jTFCelsius.getText());
} catch (NumberFormatException e) {
Celsius = -1;
}
if (Celsius > - 273.15) {
double Kelvin = Celsius2Kelvin(Celsius);
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(10);
String ausgabe1 = nf.format(Kelvin) + "°K";
jTFKelvin.setText(ausgabe1); }
else if (Celsius > - 273.15) {
double Fahrenheit = Celsius2Fahrenheit(Celsius);
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(10);
String ausgabe2 = nf.format(Fahrenheit) + "°F";
jTFKelvin.setText(ausgabe2); }
else
jTFKelvin.setText("Fehler in der Eingabe");
}
public double Celsius2Fahrenheit(double Celsius) {
double Fahrenheit = Celsius * 1.8 + 32;
return Fahrenheit;
}
public double Celsius2Kelvin(double Celsius) {
double Kelvin = Celsius + 273.15;
return Kelvin;
}
}
Vielen Dank schon mal im Voraus