Definicja i dodawanie wielu obiektów

Odpowiedz Nowy wątek
2014-12-27 17:39
0

Witam.
Próbuję rozwiązać jeden problem:

Chcę stworzyć coś w rodzaju pętli, która utworzy mi listę obiektów, a potem doda je do panelu:

import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.JButton;
import javax.swing.JPanel;
 
public class Przyciski extends JPanel implements ActionListener{
 
        public static final int HEIGHT = 100;
        public static final int WIDTH = 300;
        protected JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0;
 
    public Przyciski(){
 
        setLayout(new FlowLayout());
        b1 = new JButton("1");
        b2 = new JButton("2");
        b3 = new JButton("3");
        b4 = new JButton("4");
        b5 = new JButton("5");
        b6 = new JButton("6");
        b7 = new JButton("7");
        b8 = new JButton("8");
        b9 = new JButton("9");
        b0 = new JButton("0");
 
        setPreferredSize(new Dimension(WIDTH, HEIGHT));
        for(int i=9; i>=0; i--) add(???("b"+i));        
 
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
 
    }
} 

Pierwsze utworzenie przycisków zrobione jest klasyczną metodą, jak teraz dodać je przy użyciu pętli for, która do literki "b" doda wartość zmiennej " i ", która określa numer przycisku i zamieni w ten sposób by kompilator traktował to jako nazwę obiektu b1, b2, itd?

Pozdrawiam.

Pozostało 580 znaków

2014-12-27 17:48
Krwawy Krawiec
0

A nie lepiej zamiast pojedynczych obiektów JButton zrobić tablicę JButton?

przyciski = new JButton[10];
        for (int i = 0; i <przyciski.length; i++) {
            przyciski[i] = new JButton(String.valueOf(i));
            add(przyciski[i]);
        }

Pozostało 580 znaków

2014-12-27 18:11
0

Tak. O coś takiego mi chodziło.

Przy okazji się spytam - jaki jest skrót klawiszowy, aby w trakcie pisania dostawać od razu gotowe propozycje dokończenia pisanej frazy?
Np. napiszę słowo " set" i pojawia mi się zaraz ramka z wszystkimi możliwymi końcami tej metody.

#Edit: Oraz aby rysowane przyciski układały się od prawej strony, zaczynając od [ 9 ] jak w prawdziwym kalkulatorze?

edytowany 1x, ostatnio: Fertood, 2014-12-27 18:12

Pozostało 580 znaków

2014-12-27 19:11
1

Podpowiadanie składni Crtl+ SPACE

Pozostało 580 znaków

2014-12-27 23:54
0

Up. Nie zauważyłem, że mnie wylogowała przeglądarka.

Żadne podpowiedzi mi się nigdzie nie pokazuję, co jest dziwne bo sprawdzałem w oczywistych miejscach...
Jakaś wina w ustawieniach, czy jak?

edytowany 1x, ostatnio: furious programming, 2014-12-27 23:57
Poprzedni post usunąłem; - furious programming 2014-12-27 23:57
Trzeba było i to podać w tagach wątku... - furious programming 2014-12-28 02:51

Pozostało 580 znaków

2014-12-28 06:48
0

Nie wiem co nazywasz prawdziwym kalkulatorem, chodzi Ci o taki efekt?
BTW, szybciej i wygodniej wprowadza się liczby za pomocą klawiatury.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2014-12-28 13:14
0

Tak, o taki efekt.

Piszę to w celu nauki i kombinowania/poznawania kodu, więc staram się próbować wszystiego. ;)

Pozostało 580 znaków

2014-12-28 13:20
        setLayout(new GridLayout(4,3,5,5));
        String[] napisy = {"7","8","9","4","5","6","1","2","3","0"};
        JButton[] przyciski = new JButton[10];
        for(int i=0;i<napisy.length;i++)
        {
            przyciski[i] = new JButton(napisy[i]);
            add(przyciski[i]);
        }

To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2014-12-28 13:39
0

Problem z podpowiedziami udało mi się rozwiązać.

Tak. O coś takiego mi chodziło! :D

A da się tutaj użyć jakoś

ComponentOrientation 

#Edit: Udało mi się. Użyłem takiej linijki kodu:

p.applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
edytowany 1x, ostatnio: Fertood, 2014-12-28 13:59

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