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