Zbiór metod taki sam dla wszystkich CheckBoxów

0

Witam, mam taki problem, mianowicie muszę utworzyć około 20 checkboxów z których każdy ma parę metod, np :

tabP[0] = new JCheckBox("Matematyka");
		tabP[0].setBounds(10, 10, 120, 22);
		tabP[0].setBackground(new Color(135, 206, 250));
		tabP[0].setFont(new Font("Sans Serif", Font.ITALIC | Font.BOLD, 16));
		tabP[0].setForeground(Color.WHITE);
		tabP[0].addActionListener(this);		
		add(tabP[0]);

Dla każdego checkbox'a chcę takie same parametry, oczywiście poza nazwą czyli tabP[0], potem tabP[1] itp. oraz setBounds, żeby każdy kolejny cb był pod spodem i oczywiście add(tab[0]) dla każdego kolejnego. Czy na prawdę muszę pisać te 200 linijek czy da się jakoś skrócić ten proces?

0

Stwórz metodę która tworzy Ci checkboxy - wtedy masz metodę i w miejscu gdzie tworzysz checkboxy będzie tylko uruchomienie tej metody.

1

@Sevox, słyszałeś o pętlach?

String[] nazwy = {"Matematyka",....};
for(int i=0;i<ileCheckBoxow;i++)
{
    tabP[i] = new JCheckBox(nazwy[i]);
    tabP[i].setBounds(10, 10, 120, 22);
    tabP[i].setBackground(new Color(135, 206, 250));
    tabP[i].setFont(new Font("Sans Serif", Font.ITALIC | Font.BOLD, 16));
    tabP[i].setForeground(Color.WHITE);
    tabP[i].addActionListener(this);                
    add(tabP[i]);
}
0

@Hostel
No ok... Próbuje próbuje ale coś nie wychodzi. Do stworzonego już checkbox'a :

tabP[3] = new JCheckBox("W-F");
		tabP[3].setBounds(10, 115, 120, 22);
		create.CreateCB(tabP[3]);  
		add(tabP[3]);

próbuje ustawić kolory itp z innej klasy następującą metodą :

	public void CreateCB(JCheckBox[] tab)
	{
		tab[3].setBackground(new Color(135, 206, 250));
		tab[3].setFont(new Font("Sans Serif", Font.ITALIC | Font.BOLD, 16));
		tab[3].setForeground(Color.WHITE);
	}

Błąd mam przy wywoływaniu metody w tej linijce :

create.CreateCB(tabP[3]);  

Poprosiłbym o jakieś szczegółowe wskazówki gdyż dopiero zaczynam naukę javy.

@Edit
Mission Complete, dzięki Bogdans.

0

Bardziej myślałem o czymś takim:

// bardziej jako pseudokod bo dawno Javy nie ruszałem :]
public JCheckBox CreateCB( String _nazwa /* tutaj inne parametry jak trzeba */ )
{
          JCheckBox checkbox = new JCheckBox( _nazwa );
          // ustawiamy parametry
          return checkbox;
}

// później w kodzie robisz np. pętlę
for( /* zakres który tworzy konkretną ilość */ )
{
         // wywołujesz metodę CreateCB jak @bogdans wspominał
}

// lub ręcznie wołasz
          checkbox = CreateCB( "nazwa jaką tutaj potrzebuję" );
          checkbox2 = CreateCB( "inna nazwa" );
0
        public JCheckBox[] tab;
        public void CreateCB(String[] nazwy)
        {
                tab=new JCheckBox[nazwy..length];
                for(int i=0;i<nazwy..length;++i)
                {
                        tab[i]=new JCheckBox(nazwy[i]);
                        tab[i].setBounds(10, 10+15*i, 120, 22+15*i);
                        tab[i].setBackground(new Color(135, 206, 250));
                        tab[i].setFont(new Font("Sans Serif", Font.ITALIC | Font.BOLD, 16));
                        tab[i].setForeground(Color.WHITE);
                        tab[i].addActionListener(this);
                        add(tab[i]);
                }
        }

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