Rozmieszczanie komponentów

Odpowiedz Nowy wątek
2011-09-04 13:25
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.

edytowany 1x, ostatnio: michal_2, 2011-09-04 13:25

Pozostało 580 znaków

2011-09-06 14:18
bo
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());
    }
Przynajmniej są wcięcia ;P - ElevenEleven 2011-09-06 15:12

Pozostało 580 znaków

2011-09-06 14:53
0

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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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