|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 2001
Città: carpi - mo
Messaggi: 801
|
java: checkbox e altre cosette
Ho bisogno di una mano con java: sto creando una interfaccia grafica per un progettino all'università, e mi sono bloccato di fronte ai checkbox.
In pratica io ho un primo pannello con alcune opzioni in un checkboxgroup e vorrei che: - selezionando alcune di queste si rendesse possibile la scrittura di alcuni textfield nel pannello successivo - a seconda della selezione effettuata si abilitasse la scrittura di una determinata textfield non editabile in un terzo (ed ultimo) pannello, tramite una specie di switch Codice:
___________ | | | 1 | --> qui ho le opzioni, selezionandone alcune vorrei | | attivare il pannello 2 o il suo contenuto (txtfield) |_________| mentre selezionando le restanti al pannello 2 non | | succede nulla | | | 2 | | | |_________| | | | 3| --> qui dovrebbe comparire la txtfield in base |_________| all'opzione che scelgo nel pannello 1, deve comparire per ogni opzione selezionata Ultima domanda:c'è una funzione che mi faccia partire un determinato comando, tipo la system() del C? Grazie per la pazienza & Ciao
__________________
www.listafun.it |
![]() |
![]() |
![]() |
#2 | |||
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Quote:
Quote:
Quote:
|
|||
![]() |
![]() |
![]() |
#3 | |||
Senior Member
Iscritto dal: Nov 2001
Città: carpi - mo
Messaggi: 801
|
Innanzitutto grazie mille.
Quote:
![]() Quote:
Quote:
Ancora mille grazie Ciao
__________________
www.listafun.it |
|||
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
|
Quote:
|
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Nov 2001
Città: carpi - mo
Messaggi: 801
|
Quote:
Però non ho ancora risolto il problema del checkbox: io vorrei che ogni volta che cambio la selezione di conseguenza mi cambia anche il resto, un po come quando si deve selezionare accetto/non accetto e si evidenzia il pulsante per proseguire (l'installazione), io vorrei che selezionando l'opzione si attivano alcune cose, deselezionandola si disattivano. Ciao
__________________
www.listafun.it |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
|
Aggiungi alle JCheckox opportuni ascoltatori di eventi... le JCheckBox generano sia ItemEvent che ActionEvent quindi aggiungi o un ItemListener o un ActionListener...
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Infatti...nell'evendo seleziona metti il codice che ti serve, idem nel deseleziona...
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Nov 2001
Città: carpi - mo
Messaggi: 801
|
ok, grazie.
io però uso le awt,è la stessa cosa, giusto?
__________________
www.listafun.it |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Si la gestione degli eventi delle awt è applicabile anche alle Swing...Ecco i listati di alcuni esempi presentati nel libro Java 2 di Jaworsky:
Codice:
import java.applet.*; import java.awt.*; import java.awt.event.*; public class CheckboxTest extends Applet { CheckboxPanel checkboxPanel; CheckboxGroupPanel checkboxGroupPanel; TextArea textArea = new TextArea(5,20); public void init() { setLayout(new BorderLayout()); CheckboxHandler ch = new CheckboxHandler(); String sports[] = {"Baseball","Basketball","Football","Hockey","Soccer"}; checkboxPanel = new CheckboxPanel("What team sports do you like? ", sports,CheckboxPanel.VERTICAL,ch); add(checkboxPanel,"West"); String ages[] = {"under 20","20 - 39","40 - 59","60 - 79","80 and over"}; checkboxGroupPanel = new CheckboxGroupPanel("What is your age? ", ages,CheckboxPanel.VERTICAL,ch); add(checkboxGroupPanel,"East"); add(textArea,"South"); } class CheckboxHandler implements ItemListener { public void itemStateChanged(ItemEvent e){ String status; Checkbox checkbox = (Checkbox) e.getItemSelectable(); if(checkbox.getState()) status = "You checked: "; else status = "You unchecked: "; status+=checkbox.getLabel(); textArea.setText(status); } } } Codice:
import java.awt.*; import java.awt.event.*; public class CheckboxPanel extends Panel { public static int HORIZONTAL = 0; public static int VERTICAL = 1; public CheckboxPanel(String title,String labels[],int orientation, ItemListener ih) { super(); int length = labels.length; if(orientation == HORIZONTAL) setLayout(new GridLayout(1,length+1)); else setLayout(new GridLayout(length+1,1)); add(new Label(title)); for(int i=0;i<length;++i){ Checkbox ch = new Checkbox(labels[i]); ch.addItemListener(ih); add(ch); } } public CheckboxPanel(String title,String labels[],boolean state[], int orientation,ItemListener ih) { super(); int length = labels.length; if(orientation == HORIZONTAL) setLayout(new GridLayout(1,length+1)); else setLayout(new GridLayout(length+1,1)); add(new Label(title)); for(int i=0;i<length;++i){ Checkbox ch = new Checkbox(labels[i]); ch.setState(state[i]); ch.addItemListener(ih); add(ch); } } public boolean getState(String label) { Checkbox boxes[] = (Checkbox[])getComponents(); for(int i=0;i<boxes.length;++i) if(label.equals(boxes[i].getLabel())) return boxes[i].getState(); return false; } public void setState(String label,boolean state) { Checkbox boxes[] = (Checkbox[])getComponents(); for(int i=0;i<boxes.length;++i) if(label.equals(boxes[i].getLabel())) boxes[i].setState(state); } } Codice:
import java.awt.*; import java.awt.event.*; public class CheckboxGroupPanel extends CheckboxPanel { public CheckboxGroupPanel(String title,String labels[],int orientation, ItemListener ih) { super(title,labels,orientation,ih); putInGroup(); } public CheckboxGroupPanel(String title,String labels[],boolean state[], int orientation, ItemListener ih) { super(title,labels,state,orientation,ih); putInGroup(); } void putInGroup() { Component components[] = getComponents(); int length = components.length; CheckboxGroup group = new CheckboxGroup(); for(int i=1;i<length;++i){ Checkbox checkBox = (Checkbox) components[i]; checkBox.setCheckboxGroup(group); } } } ![]() |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Nov 2001
Città: carpi - mo
Messaggi: 801
|
grazie mille
![]()
__________________
www.listafun.it |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
|
qualche motivo particolare per usare awt???
Altrimenti ti consiglio swing... veramente portabili e più aggiornate... |
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Nov 2001
Città: carpi - mo
Messaggi: 801
|
Quote:
__________________
www.listafun.it |
|
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Direi che puoi passare direttamente alle Swing, magari dando un'"occhiata" alle AWT che ormai sono piuttosto superate...
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Nov 2001
Città: carpi - mo
Messaggi: 801
|
ok
![]()
__________________
www.listafun.it |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:18.