rozmieszczenie kontrolek Swing
Transkrypt
rozmieszczenie kontrolek Swing
Java: rozmieszczenie kontrolek Swing Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak czwartek, 27 maja 2010 PLAN WYKŁADU • Kontrolka • Grupy ComboBox kontrolek - RadioButton’y • Rozmieszczenie czwartek, 27 maja 2010 kontrolek COMBOBOX • ComboBox to kontrolka umożliwiająca wybór pozycji z listy rozwijalnej. • Do kontrolki ComboBox należy dodać poszczególne elementy. mogą to być elementy typu String lub dowolnej innej klasy udostępniającej metodę toString() class MojComboItem{ ! int numer; ! } MojComboItem(int i){ numer=i; } JComboBox combo = new JComboBox(); combo.addItem(new MojComboItem(1) { public String toString() { return "Słoneczko"; } }); combo.addItem(new MojComboItem(2) { public String toString() { return "Chmurka"; } }); combo.addItem(new MojComboItem(3) { public String toString() { return "Trawka"; } }); czwartek, 27 maja 2010 COMBOBOX obsługa zdarzeń combo.addActionListener(new ActionListener() {! ! public void actionPerformed(ActionEvent e) { ! ! JComboBox cb = (JComboBox)e.getSource(); ! ! MojComboItem item = (MojComboItem)cb.getSelectedItem(); ! ! switch (item.numer){ ! ! ! case 1: /* ... */ break; ! ! ! case 2: /* ... */ break; ! ! ! case 3: /* ... */; ! ! }! ! } }); • Obiekt klasy ActionEvent przyjmowany jako parametr w metodzie actionPerformed pozwala na odczyt • źródła generującego zdarzenie za pomocą metody getSource(). Metoda getSelectedItem klasy JComboBox pozwala na pobranie obiektu wybranego z combobox’a. czwartek, 27 maja 2010 RADIOBUTTON’Y • Grupa przycisków RadioButton pozwala na wybranie jednej opcji spośród wielu. Zaznaczenie jednego Radiobutton’a należącego do grupy powoduje odznaczenie innych. • Aby zgrupować Radiobuttony należy dodać je do grupy przycisków (ButtonGroup). • Odczyt stanu przycisku wykonywany jest za pomocą metody isSelected(). JRadioButton rb1 = new JRadioButton("Ala ma kotka"); JRadioButton rb2 = new JRadioButton("Ala ma pieska"); panel.add(rb1);! panel.add(rb2); ButtonGroup bg = new ButtonGroup(); bg.add(rb1); bg.add(rb2); boolean rb1_selected = rb1.isSelected(); boolean rb2_selected = rb2.isSelected(); czwartek, 27 maja 2010 ROZMIESZCZANIE ELEMENTÓW W PANELU Jednym ze sposobów rozmieszczania elementów w okienku jest ustawienie właściwości Layout panela na null oraz bezpośrednie ustawianie położenia poszczególnych elementów. panel.setLayout(null); JButton p1 = new JButton("Lewy górny"); JButton p2 = new JButton("Prawy górny"); JButton p3 = new JButton("Prawy dolny"); JButton p4 = new JButton("Lewy dolny"); panel.add(p1); panel.add(p2); panel.add(p3); panel.add(p4); p1.setBounds(0,0,100,100); p2.setBounds(200, 0, 100, 100); p3.setBounds(200, 200, 100, 100); p4.setBounds(0, 200, 100, 100); czwartek, 27 maja 2010 ROZMIESZCZENIE KOMPONENTÓW dodatkowe panele • Inną metodą rozmieszczenia elementów jest dodanie kilku paneli, odpowiednie rozmieszczenie ich i umieszczanie komponentów wewnątrz tych paneli. JPanel panel1 = new JPanel(); JPanel panel2 = new JPanel(); powZawartosci.add(panel1); powZawartosci.add(panel2); panel1.setBounds(10, 10, 200, 300); panel2.setBounds(220, 10, 200, 200); panel1.setBorder(BorderFactory.createTitledBorder("Panel1"));! panel2.setBorder(BorderFactory.createTitledBorder("Panel2")); panel1.add( new JButton("Przycisk1") ); panel2.add( new JButton("Przycisk2") ); czwartek, 27 maja 2010