Rozmieszczanie komponentów

0

Chciałbym napisać prosty (a może i bardziej zaawansowany) kalkulator w Javie. Problem polega na tym, że nie wiem jak rozmieścić przyciski tak, by sensownie wyglądały. Chciałbym, żeby przyciski numeryczne były w takim układzie:

1 2 3
4 5 6
7 8 9
  0

Mój kod wygląda tak:

package pl.test.java;

import java.applet.Applet;
import java.awt.Button;
import java.awt.Graphics;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/* <applet code="Test" width=400 height=200></applet>*/

public class Test extends Applet implements ActionListener{

    TextField wyswietlacz;
    Button one, two, three, four, five, six, seven, eight, nine, zero;

    public void init()
    {
        wyswietlacz = new TextField(20);
        one = new Button("1");
        two = new Button("2");
        three = new Button("3");
        four = new Button("4");
        five = new Button("5");
        six = new Button("6");
        seven = new Button("7");
        eight = new Button("8");
        nine = new Button("9");
        zero = new Button("0");

        wyswietlacz.setEditable(false);

        one.addActionListener(this);
        two.addActionListener(this);
        three.addActionListener(this);
        four.addActionListener(this);
        five.addActionListener(this);
        six.addActionListener(this);
        seven.addActionListener(this);
        eight.addActionListener(this);
        nine.addActionListener(this);
        zero.addActionListener(this);

        add(wyswietlacz);
        add(one);
        add(two);
        add(three);
        add(four);
        add(five);
        add(six);
        add(seven);
        add(eight);
        add(nine);
        add(zero);
    }

    public void actionPerformed(ActionEvent ae)
    {
        String str = ae.getActionCommand();

        if (str.equals("1"))
        {
            String st;
            st = wyswietlacz.getText();
            st += "1";
            wyswietlacz.setText(st);
        }
        else if (str.equals("2"))
        {
            String st;
            st = wyswietlacz.getText();
            st += "2";
            wyswietlacz.setText(st);
        }
        else if (str.equals("3"))
        {
            String st;
            st = wyswietlacz.getText();
            st += "3";
            wyswietlacz.setText(st);
        }
        else if (str.equals("4"))
        {
            String st;
            st = wyswietlacz.getText();
            st += "4";
            wyswietlacz.setText(st);
        }
        else if (str.equals("5"))
        {
            String st;
            st = wyswietlacz.getText();
            st += "5";
            wyswietlacz.setText(st);
        }
        else if (str.equals("6"))
        {
            String st;
            st = wyswietlacz.getText();
            st += "6";
            wyswietlacz.setText(st);
        }
        else if (str.equals("7"))
        {
            String st;
            st = wyswietlacz.getText();
            st += "7";
            wyswietlacz.setText(st);
        }
        else if (str.equals("8"))
        {
            String st;
            st = wyswietlacz.getText();
            st += "8";
            wyswietlacz.setText(st);
        }
        else if (str.equals("9"))
        {
            String st;
            st = wyswietlacz.getText();
            st += "9";
            wyswietlacz.setText(st);
        }
        else if (str.equals("0"))
        {
            String st;
            st = wyswietlacz.getText();
            st += "0";
            wyswietlacz.setText(st);
        }
    }

    public void paint(Graphics g)
    {
    }
}

Proszę o pomoc i pozdrawiam.

0

Byłoby dużo prościej gdybyś korzystał ze Swinga i menadżera BoxLayout.
Btw, bierzesz udział w konkursie na najdłuższy kod?

    public void actionPerformed(ActionEvent ae)
    {
        wyswietlacz.setText(wyswietlacz.getText()+ae.getActionCommand());
    }
0

Użyj np. NetBeans i rozmieść to tak jak chcesz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0