Hey Leute,
ich habe folgendes Problem: Ich möchte zur Übersichtlichkeit eine Rechen-Methode auslagern.
Allerdings funktioniert z.B. ein private void nur direkt unter dem Objekt, in dem ich es erstelle, aber nicht überall im Code.
Vielen Dank schonmal!
So sieht mein Code jetzt aus:
ich habe folgendes Problem: Ich möchte zur Übersichtlichkeit eine Rechen-Methode auslagern.
Allerdings funktioniert z.B. ein private void nur direkt unter dem Objekt, in dem ich es erstelle, aber nicht überall im Code.
Vielen Dank schonmal!
So sieht mein Code jetzt aus:
Java:
package gui;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
public class AlteZaehlweise extends JFrame {
private JPanel contentPane;
private JTextField textField;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
AlteZaehlweise frame = new AlteZaehlweise();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public AlteZaehlweise() {
setTitle("Alte Zählweise");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblGebenSieEine = new JLabel("Geben sie eine St\u00FCckzahl an");
lblGebenSieEine.setBounds(25, 22, 154, 14);
contentPane.add(lblGebenSieEine);
JLabel AnzahlGros = new JLabel("");
AnzahlGros.setBounds(25, 93, 46, 14);
contentPane.add(AnzahlGros);
JLabel lblGros = new JLabel("Gros");
lblGros.setBounds(85, 93, 46, 14);
contentPane.add(lblGros);
JLabel AnzahlSchock = new JLabel("");
AnzahlSchock.setBounds(25, 129, 46, 14);
contentPane.add(AnzahlSchock);
JLabel lblSchock = new JLabel("Schock");
lblSchock.setBounds(85, 129, 46, 14);
contentPane.add(lblSchock);
JLabel AnzahlDutzend = new JLabel("");
AnzahlDutzend.setBounds(25, 164, 46, 14);
contentPane.add(AnzahlDutzend);
JLabel lblDutzend = new JLabel("Dutzend");
lblDutzend.setBounds(85, 164, 46, 14);
contentPane.add(lblDutzend);
JLabel lblAnzahlstck = new JLabel("");
lblAnzahlstck.setBounds(25, 205, 46, 14);
contentPane.add(lblAnzahlstck);
JLabel lblStck = new JLabel("St\u00FCck");
lblStck.setBounds(85, 205, 46, 14);
contentPane.add(lblStck);
textField = new JTextField();
textField.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_ENTER) {
umrechnen();
}
}
});
textField.setBounds(25, 43, 141, 20);
contentPane.add(textField);
textField.setColumns(10);
Bedienungskomfort();
JButton btnUmrechnungButton = new JButton("Umrechnung in alte Z\u00E4hlma\u00DFe");
btnUmrechnungButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
umrechnen();
}
});
btnUmrechnungButton.setBounds(193, 42, 212, 23);
contentPane.add(btnUmrechnungButton);
JButton btnEnde = new JButton("Ende");
btnEnde.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
btnEnde.setBounds(316, 196, 89, 23);
contentPane.add(btnEnde);
}
void umrechnen() {
int a,gro,b,dut,c,scho,stue;
try {
a= Integer.parseInt(textField.getText());
gro=a/144;
AnzahlGros.setText(String.valueOf(gro));
b=a%144;
scho=b/60;
AnzahlSchock.setText(String.valueOf(scho));
c=b%60;
dut=c/12;
AnzahlDutzend.setText(String.valueOf(dut));
stue=c%12;
lblAnzahlstck.setText(String.valueOf(stue));
Bedienungskomfort();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Fehler");
Bedienungskomfort();
}
}
private void Bedienungskomfort() {
textField.requestFocus();
textField.selectAll();
}
}
Zuletzt bearbeitet von einem Moderator: