Methoden umrechnung binär/oktal/hexadezimal in dezimalsystem (Methode)

eloxal

Neues Mitglied
hallo leute,
hab probleme bei meinem umrechner den ich für die schule machen muss. Ich wollte dafür ne methode schreiben, indem er anhand des erste zeichen weiss um was es für ein zahlensystem handelt. Zuerst soll er die zahl ins dezimalsystem umwandeln und dann soll er die zahl in 4 verschiedene zahlensysteme zurückgeben. Ich hab gerade ein knoten im kopf, daher komm ich nicht weiter und hoffe auf eure hilfe. 😀

Der code:

Java:
public class umrechner extends javax.swing.JFrame {

    /** Creates new form umrechner */
    public umrechner() {
        initComponents();
    }
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    static int zwi = 0;
    static boolean flag = false;

    private void umrechnung(String dez) {
        String input = eingabe.getText(); //die eingabe wird einer variabeln zugewiesen
        switch (input.charAt(0)) { // das 1. zeichen vom string "input" bzw. von der eingabe
            case 'B': //falls das zeichen "B" sein soll
                String bzahl = input.substring(0); // das 1. zeichen wird ingoriert, in diesem fall "B"
                zwi = Integer.parseInt(bzahl, 2); //umwandlung der binärzahl ins dezimalsystem
                
                break;
            case 'Q': //falls das zeichen "Q" sein soll
                String qzahl = input.substring(0); // das 1. zeichen wird ingoriert, in diesem fall "Q"
                zwi = Integer.parseInt(qzahl, 8); //umwandlung der oktalzahl ins dezimalsystem                                           
                
                break;
            case '$': // falls das zeichen "$" sein soll
                String hzahl = input.substring(0); // das 1. zeichen wird ingoriert, in diesem fall "$"
                zwi = Integer.parseInt(hzahl, 16); //umwandlung der hexadezimal ins dezimalsystem
                
                break;
        }

        if (zwi != 0){
            flag = true;
        }
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        eingabe = new javax.swing.JTextField();
        binaerlabel = new javax.swing.JLabel();
        oktalsystemm = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        umrechnen = new javax.swing.JButton();
        ausgabebinaer = new javax.swing.JTextField();
        ausgabeoktal = new javax.swing.JTextField();
        ausgabehexa = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        binärbutton = new javax.swing.JButton();
        oktalbutton = new javax.swing.JButton();
        dezimalbutton = new javax.swing.JButton();
        hexabutton = new javax.swing.JButton();
        jTextField1 = new javax.swing.JTextField();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        eingabe.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        eingabe.setText("0");
        eingabe.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                eingabeActionPerformed(evt);
            }
        });

        binaerlabel.setText("Binärsystem:");

        oktalsystemm.setText("Oktalsystem:");

        jLabel1.setText("Dezimalsystem:");

        jLabel2.setText("Hexadezimal:");

        umrechnen.setText("Umrechnen");
        umrechnen.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                umrechnenActionPerformed(evt);
            }
        });

        ausgabebinaer.setBackground(new java.awt.Color(204, 204, 204));
        ausgabebinaer.setEditable(false);
        ausgabebinaer.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ausgabebinaerActionPerformed(evt);
            }
        });

        ausgabeoktal.setBackground(new java.awt.Color(204, 204, 204));
        ausgabeoktal.setEditable(false);
        ausgabeoktal.setCursor(new java.awt.Cursor(java.awt.Cursor.TEXT_CURSOR));

        ausgabehexa.setBackground(new java.awt.Color(204, 204, 204));
        ausgabehexa.setEditable(false);

        jLabel3.setText("Eingabe ist eine ....zahl:");

        binärbutton.setText("Binär");
        binärbutton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                binärbuttonActionPerformed(evt);
            }
        });

        oktalbutton.setText("Oktal");
        oktalbutton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                oktalbuttonActionPerformed(evt);
            }
        });

        dezimalbutton.setText("Dezimal");
        dezimalbutton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                dezimalbuttonActionPerformed(evt);
            }
        });

        hexabutton.setText("Hexadezimal");
        hexabutton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                hexabuttonActionPerformed(evt);
            }
        });

        jTextField1.setBackground(new java.awt.Color(204, 204, 204));
        jTextField1.setEditable(false);

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(binaerlabel, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(umrechnen, javax.swing.GroupLayout.PREFERRED_SIZE, 107, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(eingabe, javax.swing.GroupLayout.PREFERRED_SIZE, 407, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addContainerGap(16, Short.MAX_VALUE))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(ausgabehexa, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 383, Short.MAX_VALUE)
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                                    .addComponent(jLabel1)
                                    .addGap(309, 309, 309))
                                .addGroup(jPanel1Layout.createSequentialGroup()
                                    .addComponent(jLabel2)
                                    .addGap(319, 319, 319)))
                            .addComponent(oktalsystemm, javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jTextField1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 383, Short.MAX_VALUE)
                            .addComponent(ausgabeoktal, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 383, Short.MAX_VALUE)
                            .addComponent(ausgabebinaer, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 383, Short.MAX_VALUE))
                        .addGap(422, 422, 422))))
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(177, 177, 177)
                .addComponent(jLabel3)
                .addContainerGap(521, Short.MAX_VALUE))
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(110, 110, 110)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(dezimalbutton, javax.swing.GroupLayout.DEFAULT_SIZE, 102, Short.MAX_VALUE)
                    .addComponent(oktalbutton, javax.swing.GroupLayout.PREFERRED_SIZE, 102, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(hexabutton, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(binärbutton, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(491, 491, 491))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(eingabe, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addComponent(oktalbutton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(binärbutton, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(dezimalbutton, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(hexabutton, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(40, 40, 40)
                .addComponent(binaerlabel)
                .addGap(18, 18, 18)
                .addComponent(ausgabebinaer, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(14, 14, 14)
                .addComponent(oktalsystemm)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(ausgabeoktal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(15, 15, 15)
                .addComponent(jLabel2)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(ausgabehexa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(37, 37, 37)
                .addComponent(umrechnen, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(41, 41, 41))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 433, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 607, Short.MAX_VALUE)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>                        

    private void ausgabebinaerActionPerformed(java.awt.event.ActionEvent evt) {                                              
    }                                             

    private void umrechnenActionPerformed(java.awt.event.ActionEvent evt) {                                          
        while (flag = true) {
            String binaer = Integer.toBinaryString(zwi);
            String oktal = Integer.toOctalString(zwi);
            String hexa = Integer.toHexString(zwi);

            ausgabebinaer.setText(String.valueOf(binaer));
            ausgabeoktal.setText(String.valueOf(oktal));
            ausgabehexa.setText(String.valueOf(hexa));
        }
}                                         

    private void eingabeActionPerformed(java.awt.event.ActionEvent evt) {                                        
}                                       

    private void binärbuttonActionPerformed(java.awt.event.ActionEvent evt) {                                            
        eingabe.setText("B");
    }                                           

    private void dezimalbuttonActionPerformed(java.awt.event.ActionEvent evt) {                                              
        eingabe.setText("");
    }                                             

    private void oktalbuttonActionPerformed(java.awt.event.ActionEvent evt) {                                            
        eingabe.setText("Q");
    }                                           

    private void hexabuttonActionPerformed(java.awt.event.ActionEvent evt) {                                           
        eingabe.setText("$");
    }                                          

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new umrechner().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JTextField ausgabebinaer;
    private javax.swing.JTextField ausgabehexa;
    private javax.swing.JTextField ausgabeoktal;
    private javax.swing.JLabel binaerlabel;
    private javax.swing.JButton binärbutton;
    private javax.swing.JButton dezimalbutton;
    private javax.swing.JTextField eingabe;
    private javax.swing.JButton hexabutton;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JButton oktalbutton;
    private javax.swing.JLabel oktalsystemm;
    private javax.swing.JButton umrechnen;
    // End of variables declaration                   
}
 
Hi eloxal
schau dir nochmal ein wenig die API für Strings an:
Code:
String bzahl = input.substring(0);

hier sollte schon input.substring(1); stehen. Was kriegst du sonst noch für fehler?
 

Zurück
Oben