Witam.
Odkrywam aktualnie tajniki aplikacji okienkowych i trybu graficznego, no i natknąłem się na pewien problem.
Tworzę mały kalkulator, a raczej jego obraz.
Stworzyłem klawiaturę z przyciskami, które rozkładają się wedle layoutu GridLayout. Nad klawiaturą chciałem utworzyć okienko JTextField, w którym będą się pojawiać klikane liczby.
Problem jest taki, że albo kalwiatura zasłania okienko, lub te wchodzi do GridLayoutu i ma rozmiary pojedynczego klawisza.
Co zrobić, aby jakby "przesunąć" layout klawiatury w dół, a na samej górze utworzyć okienko JTextField na całej szerokości.
Poniżej aktualny kod, na którym pracuję:
import java.awt.ComponentOrientation;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Ramka extends JFrame{
public static final int HEIGHT = 400;
public static final int WIDTH = 300;
public Ramka(){
super("Kalkulator 1.0.0");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(new Dimension(WIDTH, HEIGHT));
setLocation(500,500);
JPanel panel = new MyPanel();
add(panel);
applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
setVisible(true);
}
}
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class MyPanel extends JPanel implements ActionListener{
protected JTextField tf = new JTextField("test");
protected JButton[] button = new JButton[10];
public MyPanel(){
for (int i = 0; i <button.length; i++) {
button[i] = new JButton(String.valueOf(i));
}
add(tf);
for (int i = 9; i>=0; i--) add(button[i]);
setLayout(new GridLayout(4,3,5,5));
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}
Kod na razie tworzony aby rozkminić całe działanie layoutów, przycisków, okienek itd. więc nie wińcie za poziom skomplikowania.
Pozdrawiam.