Guten Tag!
Vorab ich bin ein blutiger Anfänger in Sachen Java und bedanke mich schon jetzt für einen Tip !
Ich habe eine GUI mit 3 Textfeldern tf1, tf2 und tf3 und 2 Button IH und AH.
Bei betätigen eines der 2 Button soll im Textfeld 3 ein Ergebnis ausgegeben werden, was auch soweit funktioniert. Nur wie kann ich es realisieren, das das Ergebnis nur auf 2 Stellen hinterm Komma angezeigt wird. Ich habe schon viel über dieses Thema gelesen und ausprobiert, schaffe es aber nicht das ganze in meinem Code umzusetzen.:rtfm:
[WR]
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.DecimalFormat;
public class TextFieldDemo extends JFrame
implements ActionListener {
JTextField tf1;
JTextField tf2;
JTextField rtf;
JButton imHausButton;
JButton außerHausButton;
double ih = 0.12;
double ah = 0.92;
public TextFieldDemo() {
setTitle("Wareneinsatz");
setSize(300,300);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel ekLabel = new JLabel("Einkaufspreis:");
JLabel vkLabel = new JLabel("Verkaufspreis:");
JLabel Label = new JLabel("Wareneinsatz:");
DecimalFormat df = new DecimalFormat("#.00");
tf1 = new JTextField("0",10);;
tf2 = new JTextField("0",10);
rtf = new JTextField("0",10);
imHausButton = new JButton("IH");
außerHausButton = new JButton("AH");
imHausButton.addActionListener(this);
außerHausButton.addActionListener(this)
JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayout(3,2));
panel1.add(ekLabel);
panel1.add(tf1);
panel1.add(vkLabel);
panel1.add(tf2);
panel1.add(Label);
panel1.add(rtf);
JPanel panel2 = new JPanel();
panel2.add(imHausButton);
panel2.add(außerHausButton);
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
panel.add(panel1);
panel.add(panel2);
panel.setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
setContentPane(panel);
pack();
setResizable(false);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
String s1 = tf1.getText();
String s2 = tf2.getText();
double o1 = Double.parseDouble(s1);
double o2 = Double.parseDouble(s2);
if (source == imHausButton) {
rtf.setText("" + ((o1+ ih) / o2 *100));
}
else if (source == außerHausButton) {
rtf.setText("" + ((o1 + ah) / o2 *100));
}
}
public static void main(String[] args) {
JFrame myApplication = new TextFieldDemo();
}
}
/WR]
Vorab ich bin ein blutiger Anfänger in Sachen Java und bedanke mich schon jetzt für einen Tip !
Ich habe eine GUI mit 3 Textfeldern tf1, tf2 und tf3 und 2 Button IH und AH.
Bei betätigen eines der 2 Button soll im Textfeld 3 ein Ergebnis ausgegeben werden, was auch soweit funktioniert. Nur wie kann ich es realisieren, das das Ergebnis nur auf 2 Stellen hinterm Komma angezeigt wird. Ich habe schon viel über dieses Thema gelesen und ausprobiert, schaffe es aber nicht das ganze in meinem Code umzusetzen.:rtfm:
[WR]
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.DecimalFormat;
public class TextFieldDemo extends JFrame
implements ActionListener {
JTextField tf1;
JTextField tf2;
JTextField rtf;
JButton imHausButton;
JButton außerHausButton;
double ih = 0.12;
double ah = 0.92;
public TextFieldDemo() {
setTitle("Wareneinsatz");
setSize(300,300);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel ekLabel = new JLabel("Einkaufspreis:");
JLabel vkLabel = new JLabel("Verkaufspreis:");
JLabel Label = new JLabel("Wareneinsatz:");
DecimalFormat df = new DecimalFormat("#.00");
tf1 = new JTextField("0",10);;
tf2 = new JTextField("0",10);
rtf = new JTextField("0",10);
imHausButton = new JButton("IH");
außerHausButton = new JButton("AH");
imHausButton.addActionListener(this);
außerHausButton.addActionListener(this)
JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayout(3,2));
panel1.add(ekLabel);
panel1.add(tf1);
panel1.add(vkLabel);
panel1.add(tf2);
panel1.add(Label);
panel1.add(rtf);
JPanel panel2 = new JPanel();
panel2.add(imHausButton);
panel2.add(außerHausButton);
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
panel.add(panel1);
panel.add(panel2);
panel.setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
setContentPane(panel);
pack();
setResizable(false);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
String s1 = tf1.getText();
String s2 = tf2.getText();
double o1 = Double.parseDouble(s1);
double o2 = Double.parseDouble(s2);
if (source == imHausButton) {
rtf.setText("" + ((o1+ ih) / o2 *100));
}
else if (source == außerHausButton) {
rtf.setText("" + ((o1 + ah) / o2 *100));
}
}
public static void main(String[] args) {
JFrame myApplication = new TextFieldDemo();
}
}
/WR]