Desktop
Website
Multimedia
Database
Security
Enterprise
Questione : Problema dell'albero del GUI
Il migliore senso spiegare il mio problema è come segue… il
Please compila le due lime MonitorPanel e RunMonitorPanel e che fa funzionare il RunMonitorPanel class.
You vederà che un piccolo GUI schiocca in su con un albero con due nodi “pannelli„ e “i modi„. destra del
Step 1. - scattare sopra qualcuno di questi rami che a finestra “genererà il pannello di allarme„ e “generare l'allarme„.
Step 2. Ora ampliare c'è ne dei nodi (r vederete app1, app2 ecc). Fa il
Why di punto 1. è che lo schiocco in su ora non sta uscendo?
import java.awt.BorderLayout;
import java.awt. Pannello;
import java.awt.event.ActionEvent
;
import java.awt.event.ActionListe
ner;
import java.awt.event.MouseAdapte
r;
import java.awt.event.MouseEvent;
import java.util.Lista;
import javax.swing.BoxLayout;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JTree;
import javax.swing.event.TreeSele
ctionEvent
;
import javax.swing.event.TreeSele
ctionListe
ner;
import javax.swing.tree.DefaultMu
tableTreeN
ode;
import javax.swing.tree.DefaultTr
eeModel;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelec
tionModel;il codice categoria MonitorPanel del
public del
del
estende gli strumenti TreeSelectionListener {configPanel riservato del pannello del
JPanel del
= nuovo JPanel (); configPathLabel riservato del
JLabel = nuovo JLabel (“percorso„); configPathField riservato del
JTextField = nuovo JTextField (20); configModeLabel riservato del
JLabel = nuovo JLabel (“modo„); configModeField riservato del
JTextField = nuovo JTextField (2); rootNode riservato del
DefaultMutableTreeNode del
// = nuovo DefaultMutableTreeNode (“to
p„); apModes riservati del
DefaultMutableTreeNode = nuovo DefaultMutableTreeNode (“pa
nels„); alarmsNode riservato del
DefaultMutableTreeNode = nuovo DefaultMutableTreeNode (“mo
des„); treeModel riservato del
DefaultTreeModel = nuovo
di DefaultTreeModel (rootNode); albero riservato del
JTree; treePane riservato del
JScrollPane; caPopup riservato del
CAPopupMenu = nuovo CAPopupMenu (); capPopup riservato del
CAPPopupMenu = nuovo CAPPopupMenu ();
//////////
//////////
//////////
//////////
//////////
//
del
///////////////////////////** costruzioni un caso. */
MonitorPanel pubblico () {legare del
// il panel
configPanel.setLayout (nuovo BoxLayout (configPanel, BoxLayout.LINE_AXIS) di config);
configPanel.add (configPath
Label);
configPanel.add (configPath
Field);
configPanel.add (configMode
Label);
configPanel.add (configMode
Field);
configPathField.setEditabl
e (falso);
configModeField.setEditabl
e (falso); legare del
// il tree
rootNode.add (apModes);
rootNode.add (alarmsNode); albero del
= nuovo JTree (treeModel);
del
tree.setRootVisible;
tree.setShowsRootHandles (t
rue);
tree.getSelectionModel () .s
etSelectio
nMode (Tree
SelectionM
odel.SINGL
E_TREE_SEL
ECTION); treePane del
del
= nuovo JScrollPane (albero); setLayout del
del
// (nuovo BorderLayout ()); il
aggiunge (configPanel, BorderLayout.NORTH); il
aggiunge (treePane, BorderLayout.CENTER);
tree.addMouseListener (nuovo MyMouseListener del
// ()); setConfigPath di vuoto del pubblico del
del
} (percorso) della stringa {
configPathField.setText (pa
th); setConfigMode di vuoto del pubblico del
del
} (modo) della stringa {
configModeField.setText (posizione di segnale minimo del == del mo
de? "": modo); setAlarmPanelNames di vuoto del pubblico del
del
} (nomi) di List
ring> {
apModes.removeAllChildren (
); nomi stabiliti del
// a list
per (nome della stringa: nomi) {addAPName del
(nome, falsi); addAPName pubblico del
DefaultMutableTreeNode del
del
}} (alarmPanelName della stringa, shouldBeVisible booleano) {childNode del
DefaultMutableTreeNode = nuovo DefaultMutableTreeNode (ala
rmPanelNam
e);
treeModel.insertNodeInto (c
hildNode, apModes, apModes.getChildCount ());
se (shouldBeVisible) {
tree.scrollPathToVisible (n
ew TreePath (childNode.getPath
())); childNode di ritorno del
del
}; setAlarmNames di vuoto del pubblico del
del
} (nomi) di List
{
alarmsNode.removeAllChildr
en (); nomi stabiliti del
// a list
per (nome della stringa: nomi) {addAlarmName del
(nome, falsi); addAlarmName pubblico del
DefaultMutableTreeNode del
del
}} (alarmName della stringa, shouldBeVisible booleano) {childNode del
DefaultMutableTreeNode = nuovo DefaultMutableTreeNode (ala
rmName);
treeModel.insertNodeInto (c
hildNode, alarmsNode,
di alarmsNode.getChildCount ());
se (shouldBeVisible) {
tree.scrollPathToVisible (n
ew TreePath (childNode.getPath
())); childNode di ritorno del
del
}; vuoto del pubblico del @Override
del
del
} valueChanged (TreeSelection
Event e) {
//Returns l'ultimo elemento del percorso del metodo di selection.
//This è utile soltanto quando il modello di selezione permette un singolo nodo di selection.
DefaultMutableTreeNode = (DefaultMutableTreeNode) tree.getLastSelectedPathCo
mponent ();
se (posizione di segnale minimo del == di nodo) //Nothing è selected.
{ritorno del
;
System.out.println del
} (“
di TreeSe
lectionLis
tener.valu
eChanged (): node=„ + node.getUserObject ()); il codice categoria statico riservato MyDefaultMutableTreeNode del
//////////
//////////
//////////
//////////
//////////
//
del
////////////////////////// del
} estende DefaultMutableTreeNode {
MyDefaultMutableTreeNode pubblico (userObject) di O
bject {
eccellente (userObject); isLeaf booleano pubblico del @Override
del
del
} () {falso di ritorno del
; il
//////////
//////////
//////////
//////////
//////////
//
del
////////////////////////// del
del
}}/**
* aspetta di sentire la richiesta di mostrare a popup
*/
il codice categoria che riservato MyMouseListener estende MouseAdapter {vuoto del pubblico del @Override
del
mousePressed (MouseEvent e) {maybeShowPopup del
(e); il vuoto del pubblico del @Override
del
del
} mouseReleased (MouseEvent e) {maybeShowPopup del
(e); maybeShowPopup vuoto riservato del
del
} (MouseEvent e) {
se (e.isPopupTrigger ()) {selPath del
TreePath del
= tree.getPathForLocation (e.
getX (), e.getY ());
del
se (selPath! = annullare) {nodo del
DefaultMutableTreeNode = (DefaultMutableTreeNode) selPath.getLastPathCompone
nt ();
se (node.equals (alarmsNode)) {
System.out.println (“il select
ed allarma il nodo„); ow del
caPopup.sh (e.getComponen
t (), e.getX (), e.getY ());
} altrimenti se (node.equals (apModes)) {
System.out.println (“nodo dei pannelli di allarme del select
ed„); ow del
capPopup.sh (e.getCompone
nt (), e.getX (), e.getY ());
} altrimenti se (alarmsNode.isNodeChild (no
de)) {
System.out.println (“nodo dell'allarme del select
ed„);
} altrimenti se (
) {
System.out.println (“nodo di apModes.isNodeChild (nodo) del pannello di allarme del select
ed„); il codice categoria riservato CAPopupMenu del
//////////
//////////
//////////
//////////
//////////
//
del
////////////////////////// del
del
del
del
del
del
}}}}} estende JPopupMenu {selectAlarmMenuItem riservato del
JMenuItem = nuovo JMenuItem (“generare l'allarme„);
CAPopupMenu pubblico () {
aggiunge (selectAlarmMenuItem);
selectAlarmMenuItem.addAct
ionListene
r (nuovo ActionListener () {vuoto del pubblico del
actionPerformed (ActionEven
t e) {
System.out.println (“allarme del creati
ng„);
del
}}); il codice categoria riservato CAPPopupMenu del
//////////
//////////
//////////
//////////
//////////
//
del
} ////////////////////////// del
} estende JPopupMenu {selectAlarmMenuItem riservato del
JMenuItem = nuovo JMenuItem (“generare il pannello di allarme„);
CAPPopupMenu pubblico () {
aggiunge (selectAlarmMenuItem);
selectAlarmMenuItem.addAct
ionListene
r (nuovo ActionListener () {vuoto del pubblico del
actionPerformed (ActionEven
t e) {
System.out.println (“pannello di allarme del creati
ng„);
del
}});
==========================
==========
==========
==========
==========
====
import java.awt del
del
del
}}}. Componente;
import java.awt. Dimensione;
import java.awt. Borsa degli arnesi;
import java.util. Allineamenti;
import javax.swing.JFrame; codice categoria RunMonitorPanel {
del
public/** costruire un caso.
di */
RunMonitorPanel () {
}/**
* concentrar una componente sullo screen.
* l'obiettivo del @param la componente da essere vuoto riservato di elettricità statica di centered.
*/
centerOnScreen (obiettivo componente) {
se (obiettivo! = annullare) {dimensione del
screenSize = Toolkit.getDefaultToolkit (
) .getScree
nSize (); La dimensione del
targetSize = target.getSize ();
se (targetSize.height > screenSize.height) {
targetSize.height = screenSize.height;
del
} se (targetSize.width > screenSize.width) {
targetSize.width = screenSize.width;
}
int x = (screenSize.width -)/2 di targetSize.width;
int y = (screenSize.height -)/2 di targetSize.height;
target.setLocation (x, y);
del
del
}}/**
* generare e mostrare al GUI.
*/
il createAndShowGUI vuoto statico riservato () {
//Create ed ha installato la struttura di window.
JFrame = nuovo JFrame (“MonitorPanel„);
frame.setDefaultCloseOpera
tion (JFram
e.EXIT_ON_
CLOSE); il
// ha installato il pannello del soddisfare pane.
MonitorPanel = nuovo MonitorPanel ();
frame.getContentPane () .add
(pannello); il
// ha fissato alcuni valori per display
panel.setConfigPath („ /tmp/
config ");
panel.setConfigMode (“RW„); alarmNames della stringa del
[] = {“a1„, “a2„, “a3„};
panel.setAlarmNames (Arrays
.asList (al
armNames))
; alarmPanelNames della stringa del
[] = {“ap1„, “ap2„, “ap3„};
panel.setAlarmPanelNames (A
rrays.asLi
st (alarmPa
nelNames))
; il pacchetto del
// e mostra il window.
frame.pack (); il
centerOnScreen (struttura);
frame.setVisible (allineare);
del
}/**
* generare e mostrare al GUI.
*/
il vuoto pubblico di elettricità statica principale (args) della stringa [] {
javax.swing.SwingUtilities
.invokeLat
er (nuovo praticabile () {vuoto del pubblico del
funzionano () {createAndShowGUI del
();
del
}});
==========================
==========
==========
==========
==========
del
del
}} class= del
Risposta : Problema dell'albero del GUI
Indovino che dovrebbe essere meno 45:
DOVE providerID DENTRO (“A000000015210B„, “A000000003731B
")
E Input_Date <� DATEADD="">
o
DOVE providerID DENTRO (“A000000015210B„, “A000000003731B
")
E Received_Date > DATEADD (giorno, 45, Input_Date)
Altre soluzioni
Sysprepping Windows 7 pc
Ciclaggio complesso di domanda di Coldfusion
SPContext.Current sta restituendo la posizione di segnale minimo nell'alimentatore di evento “di SPItemEventReceiver„.
IL CSS che IL MIME errato scriv dentro Firefox a macchina su Apache, il testo/css .css di AddType è là
MAcbook pro rifiuta di collegarsi via Ethernet ma impianti via il wifi
Cliente del Java applet - Eccezione di sicurezza
Mostrare tutte le annotazioni nella domanda se niente selezionato in Listbox - la parte II
Mouseover su div.a cambia la disposizione di div.b (CSS puro)
Azionamento duro PowerEdge guast 1850 di incursione 1
asp - La risorsa non ha potuto essere trovata