|
|||||||
|
|
|
![]() |
|
|
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: 06:17.



















