witam. chciałbym zapytać jak zrobić tak by gdy jeden radiobutton jest wciśnięty to drugi się odznacza i na odwrót. próbowałem już funkcja isselected oraz np. radiobutton.selected == false, ale nic z tego bo podkreśla nazwę mojego radiobuttona na czerwono. chciałbym się ogólnie dowiedzieć jakich funkcji użyć i gdzie je wklepać.
druga sprawa do dodawanie do Jlista rzeczy po kliknięciu przycisku. działało by to tak ze w panelu1 znajduje się text field oraz button a w panelu 2 znajduje się jlist. chce zrobić tak ze po kliknięciu buttona wyciągany zostaje tekst z text fielda i dodany do jlista(imię + nazwisko + płeć dodana do jlista). Później tez chce po kliknięciu buttona w panelu 2 (tego obok lista) żeby zaznaczona pozycja się usunęła. Poniżej dodam screena jak to wszystko wygląda.
co do buttonów to zrób grupe radio buttonów (klasa ButtonGroup), nie dodawaj ich pojedynczo, wtedy klikajac jeden drugi sie odznaczy
co do list to prawde mówiąc nie pamietam, nie bawiłem się nimi :P
#edit
troche rozwlekle napisałem :P stworz obiekt ButtonGroup pod np zmienna "grupa" i do niej dodawaj poszczególne JRadioButton (tak to się robiło jeśli dobrze pamietam)
w razie czego obejrzyj a wszystko bedzie jasne:
polecam cala serie obejrzeć tego pana, wieeele sie rozjaśni z poziomu kodu, bo ze strony gui buildera wiele rzeczy umyka :)
znowu edit
http://docs.oracle.com/javase/tutorial/uiswing/components/list.html
ok, z radiobuttonami dałem radę. teraz trochę trudniejsza sprawa. mianowicie z list modelem. tak jak pisałem chcę po kliknięciu buttona a by wyjęto dane z komórek imie oraz nazwisko i wpisało do listy. dodam fragment kodu. błędu nie ma, ale po naciśnięciu przycisku nic się nie dzieje. Aha, no i usuwanie. wywala mnóstwo czerwonych błędów po naciśnięciu. nawet gdy dodam coś do listy "na sztywno"
fragment kodu:
J
final DefaultListModel model = new DefaultListModel();
Button usun = new JButton("Usu\u0144 \r\nzaznaczonego");
usun.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if (JOptionPane.showConfirmDialog(null,"Napewno usuąć?")==JOptionPane.YES_OPTION)
{
int zazn=listaosob.getSelectedIndex(); //////////ttuaj jest usuwanie, niestety nie działa.
model.remove(zazn);
////to usuwa
}
}
});
usun.setFont(new Font("Comic Sans MS", Font.PLAIN, 11));
GridBagConstraints gbc_usun = new GridBagConstraints();
gbc_usun.fill = GridBagConstraints.VERTICAL;
gbc_usun.gridx = 1;
gbc_usun.gridy = 1;
panel_2.add(usun, gbc_usun);
////////////////////////DEKLARACJA BUTTONA U SAMEJ GORY/////////////////////////////
dodajosobe.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(imie.getText().equals("") || nazwisko.getText().equals("")) ///////////////////wypisanie komunikatu z bledem jesli pola nie wypelnione
JOptionPane.showMessageDialog(null, "Niepoprawne dane. Uzupełnij imie lub nazwisko");
int pos = listaosob.getModel().getSize();
model.add(pos, imie.getText() + " " + nazwisko.getText()); ////////////// nie dodaje do listy po kliknieciu./
// male.setSelected(false);
}
});