HTML Tutorials |
|
XML Tutorials |
|
Browser Scripting |
|
Server Scripting |
|
.NET (dotnet) |
|
Multimedia |
|
Web Building |
|
Java Tutorials |
|
Programming Langauges |
|
Soft Skills |
|
Database Tutorials |
|
Operating System |
|
Software Testing |
|
SAP Module |
|
Networking Programming |
|
Microsoft Office |
|
Accounting |
|
|
Usando i blocchetti di costruzione del GUI in Java |
Prima che cominci usando i componenti, dovreste sapere che cosa il codice categoria componente fornir� e potete adattare i componenti per il cliente. Allora dir� a come usare i componenti quale il AWT fornisce. Ogni genere del componente ha relativa propria pagina:
|
Come utilizzare i tasti
|
Il codice categoria dei tasti fornisce un'esecuzione del tasto di difetto. Onscreen l'apparenza dei tasti dipende da una piattaforma che stanno funzionando sopra. Se desiderate i tasti del programma osservare stessi per tutta la piattaforma o al contrario avere uno sguardo speciale, dovreste generare una sottoclasse della tela di canapa per effettuare questo sguardo; lo sguardo non pu� essere cambiato usando la sottoclasse del tasto. Le uniche sfaccettature dell'apparenza del tasto che possiamo cambiare senza generare il nostro proprio codice categoria siamo le serie complete di caratteri ed il testo che visualizza e dei colori della priorit� bassa e della priorit� alta.
|
Sotto � un applet che visualizza tre tasti. Quando scattate il tasto di sinistra, inabilita il tasto centrale e permette quello di destra. Similmente quando sullo scatto il tasto di destra, esso permetterete il tasto di sinistra ed il tasto centrale ed esso si inabilita. Sotto � il codice che generer� i tasti e reagisce agli scatti del tasto.
|
//In initialization code:
b1 = new Button();
b1.setLabel("Disable middle button");
b2 = new Button("Middle button");
b3 = new Button("Enable middle button");
b3.disable();
public boolean handleEvent(Event e)
{
Object target = e.target;
System.out.println("Event received: " + e);
if (e.id == Event.ACTION_EVENT)
{
if (target == b1)
{
b2.disable();
b1.disable();
b3.enable();
} else if (target == b3)
{
b2.enable();
b1.enable();
b3.disable();
}
}
return super.handleEvent(e);
}
|
|
Come usare le tele di canapa
|
Un codice categoria della tela di canapa esiste per essere subclassed. Non far� nulla da s�; soltanto fornisce il senso effettuare i componenti su ordinazione. Per esempio, le tele di canapa sono utili come zona di esposizione per le immagini ed i grafici su ordinazione, se o non desiderate maneggiare gli eventi che si presentano all'interno di una zona di esposizione.
|
Mentre effettuando una sottoclasse della tela di canapa. ciao per effettuare minimumSize () e preferredSize () il metodo per riflettere correttamente il formato della tela di canapa. Altrimenti, secondo la disposizione che gli usi del contenitore della tela di canapa, la vostra tela di canapa potrebbero concludere su troppo piccolo -- forse persino essere invisibile. Qui � un esempio della sottoclasse della tela di canapa che visualizza l'immagine:
|
class ImageCanvas extends Canvas
{
ImageCanvas(Image img, Dimension prefSize)
{
image = img;
preferredSize = prefSize;
}
public Dimension minimumSize()
{
return preferredSize;
}
public Dimension preferredSize()
{
return preferredSize;
}
public void paint(Graphics g)
{
g.drawImage(image, 0, 0, this);
}
}
|
|
Come usare il Checkboxes
|
Il codice categoria di Checkbox fornisce i checkboxes -- due-dichiarare i tasti che possono essere "ON" o "OFF". Se desideriamo il gruppo dei checkboxes in cui soltanto uno del checkbox pu� essere "ON" alla volta, potete aggiungere l'oggetto di CheckboxGroup per sorvegliare i checkboxes. Altri buoni sensi di fornire un gruppo degli articoli che l'utente pu� selezionare sono le scelte, le liste ed i menu.
|
� dato sotto il codice per un applet che contiene due colonne dei checkboxes. A sinistra sono tre checkboxes indipendenti. Potete selezionare tutti i tre checkboxes, se gradite a. A destra sono i tre checkboxes che sono coordinati dall'oggetto di CheckboxGroup. Il CheckboxGroup non si accerta nient'altro di uno dei relativi checkboxes � selezionato alla volta. Qui � il programma che effettua questa operazione. Sotto � il codice che genera gli entrambi gruppi dei checkboxes. Nota: soltanto il secondo, gruppo reciproco-esclusivo dei checkboxes � controllato dal CheckboxGroup.
|
Panel p1, p2;
Checkbox cb1, cb2, cb3; //independent checkboxes
Checkbox cb4, cb5, cb6; //only one of these three can be selected
CheckboxGroup cbg;
cb1 = new Checkbox();
cb1.setLabel("Checkbox 1");
cb2 = new Checkbox("Checkbox 2");
cb3 = new Checkbox("Checkbox 3");
cb3.setState(true);
. . .
cbg = new CheckboxGroup();
cb4 = new Checkbox("Checkbox 4", cbg, false);
cb5 = new Checkbox("Checkbox 5", cbg, false);
cb6 = new Checkbox("Checkbox 6", cbg, false);
|
|
Come usare le scelte
|
Il codice categoria Choice fornisce la a menu-come la lista delle scelte, raggiunta dal tasto distintivo. L'utente preme il tasto per portare in su �il menu� e pi� successivamente sceglie uno degli articoli dalla lista del menu. Un altro nome per questo elemento di UI � �la lista pop-up�. Altri sensi di fornire le alternative multiple sono checkboxes, liste e menu.
|
Sotto � un codice del applet che ha una scelta e un'etichetta. Quando l'utente sceglie l'articolo dalla lista Choice, l'etichetta cambia per riflettere un articolo scelto questo codice genera la scelta e gli maneggia gli eventi. Nota: che il secondo parametro al metodo di azione () � una stringa dall'articolo selezionato.
|
//...Where instance variables are defined:
Choice choice; //pop-up list of choices
//...Where initialization occurs:
choice = new Choice();
choice.addItem("ichi");
choice.addItem("ni");
choice.addItem("san");
choice.addItem("shi");
label = new Label();
setLabelText(choice.getSelectedIndex(), choice.getSelectedItem());
. . .
public boolean action(Event e, Object arg)
{
if (e.target instanceof Choice)
{
setLabelText(choice.getSelectedIndex(), (String)arg);
return true;
}
return false;
}
}
|
|
Come usare i dialoghi |
La cosa che distingue i dialoghi dalle finestre normali (che sono effettuate con gli oggetti della pagina) � che il dialogo dipende da una certa altra finestra (pagina del i'e). Quando questa altra finestra � distrutta ed in modo da sono i relativi dialoghi dipendenti. Quando quella altra finestra � stata iconified, i relativi dialoghi dipendenti sparir� dallo schermo. Quando la finestra � stata deiconified, i relativi dialoghi dipendenti rinviano allo schermo. Il AWT fornisce automaticamente questo comportamento noi.
|
Poich� nessun api attualmente esiste ha lasciato i applet trovare la finestra che stanno funzionando dentro, i applet non possono usare generalmente i dialoghi. L'eccezione � i applet che portano in su le loro proprie finestre possono avere i dialoghi dipendenti da quelle finestre. Per questo motivo, il seguente applet consiste del tasto che porta in su la finestra che porta in su un dialogo. Qui � il codice per la finestra che il applet porta in su. Questo codice pu� essere fatto funzionare come applicazione autonoma o, con l'aiuto del codice categoria di AppletButton, poich� un applet qui � il codice che si occupa dell'oggetto di dialogo:
|
//[HOW DO I MAKE THIS GET THE FOCUS?]
class SimpleDialog extends Dialog
{
private TextField field;
private DialogWindow parent;
private Button setButton;
SimpleDialog(Frame dw, String title)
{
super(dw, title, false);
parent = (DialogWindow)dw;
//Create and add components, such as the set button....
resize(350, 125);
}
public boolean action(Event event, Object arg)
{
if ( (event.target == setButton)
| (event.target instanceof TextField))
{
parent.setText(field.getText());
}
field.selectAll();
hide();
return true;
}
}
|
|
Come usare le strutture
|
Il codice categoria della pagina fornisce le finestre per i applet e le applicazioni. Ogni applicazione ha bisogno della pagina del atleast uno. Se un'applicazione ha la finestra che dovrebbe dipendere da un'altra finestra -- sparire quando l'altra finestra � iconified, per esempio -- allora dovreste usare il dialogo anzich� la pagina per la finestra dipendente. (Purtroppo, i applet non possono usare attualmente i dialoghi bene, in modo da devono usare le strutture.)
|
Sotto � un codice affinch� gli usi di dimostrazione del menu generi la finestra e maneggiare il caso dove l'utente chiude la finestra.
|
public class MenuWindow extends Frame
{
private boolean inAnApplet = true;
private TextArea output;
public MenuWindow()
{
//This constructor implicitly calls the Frame no-argument
//constructor and then adds components to the window.
}
public boolean handleEvent(Event event)
{
if (event.id == Event.WINDOW_DESTROY)
{
if (inAnApplet)
{
dispose();
} else
{
System.exit(0);
}
}
return super.handleEvent(event);
}
. . .
public static void main(String args[])
{
MenuWindow window = new MenuWindow();
window.inAnApplet = false;
window.setTitle("MenuWindow Application");
window.resize(250, 90);
window.show();
}
}
|
|
Come usare le etichette
|
Il codice categoria dell'etichetta fornisce un senso facile per mettere il testo uneditable e unselectable nel GUI del programma. Le etichette sono state allineate alla sinistra della loro zona di disegno, per difetto. possiamo specificare che sono concentrate o di destra-allineate specificando il Label.CENTER o da Label.RIGHT per identificare il costruttore o al metodo di setAlignment (). Come con ogni componente, potete anche fare specificate la serie completa di caratteri ed il colore dell'etichetta.
|
Sono dati sotto i applet che usano le etichette. Il primo applet (LabelDemo) genera semplicemente tre etichette con un allineamento (di sinistra) di difetto, le mette nel GridLayout ed allora le visualizza. Qui � il codice per LabelDemo.
|
import java.awt.*;
import java.applet.Applet;
public class LabelDemo extends Applet
{
public void init()
{
Label l1 = new Label();
l1.setText("Label 1");
Label l2 = new Label("Label 2");
Label l3 = new Label("Label 3");
//Add Components to the Applet.
setLayout(new GridLayout(0, 1));
add(l1);
add(l2);
add(l3);
validate();
}
}
|
|
Il secondo applet (LabelAlignDemo) lo fa stessi, salvo che usa tutti e tre gli allineamenti possibili. Poich� il applet � pi� largo di necessario visualizzare il testo e perch� il GridLayout usa tutto lo spazio disponibile, le etichette hanno la zona di esposizione pi� larga che hanno bisogno di. Ci� provoca la differenza visibile in una posizione orizzontale delle tre etichette differente state allineate.
|
import java.awt.*;
import java.applet.Applet;
public class LabelAlignDemo extends Applet
{
public void init()
{
Label l1 = new Label();
l1.setText("Left");
Label l2 = new Label("Center");
l2.setAlignment(Label.CENTER);
Label l3 = new Label("Right", Label.RIGHT);
//Add Components to the Applet.
setLayout(new GridLayout(0, 1));
add(l1);
add(l2);
add(l3);
validate();
}
}
|
|
Sotto � un codice che LabelAlignDemo usa generare le etichette ed ha regolato il loro allineamento. Allo scopo di insegnare, questo applet usa tutti i costruttori delle tre etichette.
|
Label l1 = new Label();
l1.setText("Left");
Label l2 = new Label("Center");
l2.setAlignment(Label.CENTER);
Label l3 = new Label("Right", Label.RIGHT);
|
|
Come usare le liste
|
Il codice categoria della lista fornisce la zona scrollable che contiene gli articoli selettivi del testo (uno per ogni linea). Le liste possono permettere le selezioni multiple o soltanto una selezione alla volta. Altri componenti che permette che gli utenti scelgano dalle selezioni multiple sono checkboxes (gruppi del checkbox specialmente), scelte e menu.
|
Sotto � il codice per un applet che mostra due liste. La prima lista (che elenca fuori i numeri spagnoli) permette le selezioni multiple. La seconda lista (che elenca i numeri italiani) permette un massimo di una selezione. Sotto � un codice che genera ogni lista e maneggia gli eventi sulla lista. Nota: i dati di e.arg per gli eventi di azione sono il nome dell'comport-sull'articolo (simile alla discussione per gli eventi di azione su altri componenti quali i tasti ed i menu). Tuttavia, i dati di e.arg per altri eventi della lista sono un certo numero comport-sull'articolo.
|
//where instance variables are declared:
TextArea output;
List spanish, italian;
//where initialization occurs:
//Build first list, which allows multiple selections.
spanish = new List(4, true); //prefer 4 items visible
spanish.addItem("uno");
spanish.addItem("dos");
spanish.addItem("tres");
spanish.addItem("cuatro");
spanish.addItem("cinco");
spanish.addItem("seis");
spanish.addItem("siete");
//Build second list, which allows one selection at a time.
italian = new List(); //Defaults to none visible, only one selectable
italian.addItem("uno");
italian.addItem("due");
italian.addItem("tre");
italian.addItem("quattro");
italian.addItem("cinque");
italian.addItem("sei");
italian.addItem("sette");
. . .
public boolean handleEvent(Event e)
{
if (e.target instanceof List)
{
List list = (List)(e.target);
String language = (list == spanish) ?
"Spanish" : "Italian";
switch (e.id)
{
case Event.ACTION_EVENT:
String string = (String)e.arg;
output.appendText("Action event occurred on \""
+ string + "\" in "
+ language + ".\n");
break;
case Event.LIST_SELECT:
int sIndex = ((Integer)e.arg).intValue();
output.appendText("Select event occurred on item #"
+ sIndex + " (\""
+ list.getItem(sIndex) + "\") in "
+ language + ".\n");
break;
case Event.LIST_DESELECT:
int dIndex = ((Integer)e.arg).intValue();
output.appendText("Deselect event occurred on item #"
+ dIndex + " (\""
+ list.getItem(dIndex) + "\") in "
+ language + ".\n");
}
}
return super.handleEvent(e);
}
|
|
Come usare i menu
|
Il applet dato sopra mostra molte delle caratteristiche che del menu siamo probabili per usare. La finestra che porta in su ha barra dei menu che contiene quattro menu. Ogni menu contiene uno o pi� che gli articoli uno. Il menu 1 � un menu di sradicamento; scattando un a linea tratteggiata [esecuzione-specifico?], generiamo una nuova finestra che contiene le stesse voci di menu del menu 1. L'articolo del menu 2 soltanto ha un checkbox. Il menu 3 contiene il separatore fra il relativo secondo ed i terzi articoli. Il menu 4 � menu di aiuto della finestra, che (secondo una piattaforma) generalit� mezzi che � regolata fuori alla destra. Quando scattiamo sopra tutte le voci di menu, le esposizioni di finestra indicare della stringa quale articolo � stato scattato e che menu � poll.
|
Qui � il codice per la finestra che il suddetto applet porta in su. Questo codice pu� funzionare come applicazione autonoma o, con l'aiuto di un codice categoria di AppletButton, come applet. Qui � il codice che si occupa dei menu:
|
public MenuWindow()
{
MenuBar mb;
Menu m1, m2, m3, m4;
MenuItem mi1_1, mi1_2, mi3_1, mi3_2, mi3_3, mi3_4, mi4_1, mi4_2;
CheckboxMenuItem mi2_1;
// ...Add the output displayer to this window...
//Build the menu bar.
mb = new MenuBar();
setMenuBar(mb);
//Build first menu in the menu bar.
m1 = new Menu("Menu 1", true);
mb.add(m1);
mi1_1 = new MenuItem("Menu Item 1_1");
m1.add(mi1_1);
mi1_2 = new MenuItem("Menu Item 1_2");
m1.add(mi1_2);
//Build help menu. Note that order in which it's added doesn't matter.
m4 = new Menu("Menu 4");
mb.add(m4); //Just setting the help menu doesn't work; must add it.
mb.setHelpMenu(m4);
mi4_1 = new MenuItem("Menu Item 4_1");
m4.add(mi4_1);
mi4_2 = new MenuItem("Menu Item 4_2");
m4.add(mi4_2);
//Build second menu in the menu bar.
m2 = new Menu("Menu 2");
mb.add(m2);
mi2_1 = new CheckboxMenuItem("Menu Item 2_1");
m2.add(mi2_1);
//Build third menu in the menu bar.
m3 = new Menu("Menu 3");
mb.add(m3);
mi3_1 = new MenuItem("Menu Item 3_1");
m3.add(mi3_1);
mi3_2 = new MenuItem("Menu Item 3_2");
m3.add(mi3_2);
m3.addSeparator();
mi3_3 = new MenuItem("Menu Item 3_3");
m3.add(mi3_3);
mi3_4 = new MenuItem("Menu Item 3_4");
mi3_4.disable();
m3.add(mi3_4);
}
public boolean action(Event event, Object arg)
{
String str = "Action detected";
if (event.target instanceof MenuItem)
{
MenuItem mi=(MenuItem)(event.target);
str += " on " + arg; v
if (mi instanceof CheckboxMenuItem)
{
str += " (state is "
+ ((CheckboxMenuItem)mi).getState()
+ ")";
}
MenuContainer parent = mi.getParent();
if (parent instanceof Menu)
{
str += " in " + ((Menu)parent).getLabel();
} else
{
str += " in a container that isn't a Menu";
}
}
str += ".\n";
//...Display string in the output area...
return false;
}
|
|
Come usare i pannelli
|
Panel p1 = new Panel();
p1.add(new Button("Button 1"));
p1.add(new Button("Button 2"));
p1.add(new Button("Button 3"));
|
|
Come usare lo Scrollbars
|
public boolean handleEvent(Event evt)
{
switch (evt.id)
{
case Event.SCROLL_LINE_UP:
case Event.SCROLL_LINE_DOWN:
case Event.SCROLL_PAGE_UP:
case Event.SCROLL_PAGE_DOWN:
case Event.SCROLL_ABSOLUTE:
if (evt.target == vert)
{
canvas.ty = ((Integer)evt.arg).intValue();
canvas.repaint();
}
if (evt.target == horz)
{
canvas.tx = ((Integer)evt.arg).intValue();
canvas.repaint();
}
}
return super.handleEvent(evt);
}
|
|
Come usare il TextAreas e il TextFields
|
//Where instance variables are defined:
TextField textField;
TextArea textArea;
public void init()
{
textField = new TextField(20);
textArea = new TextArea(5, 20);
textArea.setEditable(false);
...//Add the two components to the panel.
}
public boolean handleEvent(Event evt)
{
if (evt.id == Event.ACTION_EVENT)
{
String text = textField.getText();
textArea.appendText(text + "\n");
textField.selectAll();
}
return super.handleEvent(evt);
}
|
|
Keywords: JoltBeans.
|
|
HTML Quizes |
|
XML Quizes |
|
Browser Scripting Quizes |
|
Server Scripting Quizes |
|
.NET (dotnet) Quizes |
|
Multimedia Quizes |
|
Web Building Quizes |
|
Java Quizes |
|
Programming Langauges Quizes |
|
Soft Skills Quizes |
|
Database Quizes |
|
Operating System Quizes |
|
Software Testing Quizes |
|
SAP Module Quizes |
|
Networking Programming Quizes |
|
Microsoft Office Quizes |
|
Accounting Quizes |
|
|