Microsoft
Software
Hardware
Network
Cuestión : Problema del árbol del GUI
La mejor manera de explicar mi problema es como sigue… el
Please compila los dos archivos MonitorPanel y RunMonitorPanel y funciona el RunMonitorPanel class.
You considerará que un pequeño GUI surge con un árbol con dos nodos los “paneles” y “modos”. la derecha del
Step 1. - chascar encendido ninguno de estos ramas que móvil “creará el panel de alarma” y “crear la alarma”.
Step 2. Ahora ampliar los nodos uces de los (usted r verá app1, app2 etc). ¿Hace el
Why del paso 1. es que ahora no está saliendo el estallido para arriba?
import java.awt.BorderLayout;
import java.awt. El panel;
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;la clase MonitorPanel del
public del
del
amplía los instrumentos TreeSelectionListener {configPanel privado del panel del
JPanel del
= nuevo JPanel (); configPathLabel privado del
JLabel = nuevo JLabel (“trayectoria”); configPathField privado del
JTextField = nuevo JTextField (20); configModeLabel privado del
JLabel = nuevo JLabel (“modo”); configModeField privado del
JTextField = nuevo JTextField (2); rootNode privado del
DefaultMutableTreeNode del
// = nuevo DefaultMutableTreeNode (“to
p”); apModes privados del
DefaultMutableTreeNode = nuevo DefaultMutableTreeNode (“pa
nels”); alarmsNode privado del
DefaultMutableTreeNode = nuevo DefaultMutableTreeNode (“mo
des”); treeModel privado del
DefaultTreeModel = nuevo
de DefaultTreeModel (rootNode); árbol privado del
JTree; treePane privado del
JScrollPane; caPopup privado del
CAPopupMenu = nuevo CAPopupMenu (); capPopup privado del
CAPPopupMenu = nuevo CAPPopupMenu ();
//////////
//////////
//////////
//////////
//////////
//
del
///////////////////////////** construcciones un caso. */
MonitorPanel público () {alambre del
// el panel
configPanel.setLayout (nuevo BoxLayout (configPanel, BoxLayout.LINE_AXIS) de los 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); alambre del
// el tree
rootNode.add (apModes);
rootNode.add (alarmsNode); árbol del
= nuevo 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
= nuevo JScrollPane (árbol); setLayout del
del
// (nuevo BorderLayout ()); el
agrega (configPanel, BorderLayout.NORTH); el
agrega (treePane, BorderLayout.CENTER);
tree.addMouseListener (nuevo MyMouseListener del
// ()); setConfigPath del vacío del público del
del
} (trayectoria) de la secuencia {
configPathField.setText (pa
th); ¿setConfigMode del vacío del público del
del
} (modo) de la secuencia {
configModeField.setText (falta de información del == del mo
de? "": modo); setAlarmPanelNames del vacío del público del
del
} (nombres) de List
ring> {
apModes.removeAllChildren (
); nombres determinados del
// al list
para (nombre de la secuencia: nombres) {addAPName del
(nombre, falsos); addAPName público del
DefaultMutableTreeNode del
del
}} (alarmPanelName de la secuencia, shouldBeVisible boleano) {childNode del
DefaultMutableTreeNode = nuevo DefaultMutableTreeNode (ala
rmPanelNam
e);
treeModel.insertNodeInto (c
hildNode, apModes, apModes.getChildCount ());
si (shouldBeVisible) {
tree.scrollPathToVisible (n
ew TreePath (childNode.getPath
())); childNode de vuelta del
del
}; setAlarmNames del vacío del público del
del
} (nombres) de List
{
alarmsNode.removeAllChildr
en (); nombres determinados del
// al list
para (nombre de la secuencia: nombres) {addAlarmName del
(nombre, falsos); addAlarmName público del
DefaultMutableTreeNode del
del
}} (alarmName de la secuencia, shouldBeVisible boleano) {childNode del
DefaultMutableTreeNode = nuevo DefaultMutableTreeNode (ala
rmName);
treeModel.insertNodeInto (c
hildNode, alarmsNode,
de alarmsNode.getChildCount ());
si (shouldBeVisible) {
tree.scrollPathToVisible (n
ew TreePath (childNode.getPath
())); childNode de vuelta del
del
}; vacío del público del @Override
del
del
} valueChanged (TreeSelection
Event e) {el
//Returns el elemento pasado de la trayectoria del método de selection.
//This es útil solamente cuando el modelo de selección permite un solo nodo de selection.
DefaultMutableTreeNode = (DefaultMutableTreeNode) tree.getLastSelectedPathCo
mponent ();
si (falta de información del == del nodo) //Nothing es selected.
{vuelta del
;
System.out.println del
} (
“de TreeSe
lectionLis
tener.valu
eChanged (): node=” + node.getUserObject ()); la clase estática privada MyDefaultMutableTreeNode del
//////////
//////////
//////////
//////////
//////////
//
del
////////////////////////// del
} amplía DefaultMutableTreeNode {
MyDefaultMutableTreeNode público (userObject) de O
bject {
estupendo (userObject); isLeaf boleano público del @Override
del
del
} () {falso de vuelta del
; el
//////////
//////////
//////////
//////////
//////////
//
del
////////////////////////// del
del
}}/** el
* está atenta la petición de demostrar al popup
*/
la clase privada que MyMouseListener amplía MouseAdapter {vacío del público del @Override
del
mousePressed (MouseEvent e) {maybeShowPopup del
(e); el vacío del público del @Override
del
del
} mouseReleased (MouseEvent e) {maybeShowPopup del
(e); maybeShowPopup vacío privado del
del
} (MouseEvent e) {
si (e.isPopupTrigger ()) {selPath del
TreePath del
= tree.getPathForLocation (e.
getX (), e.getY ()); ¡
del
si (selPath! = anular) {nodo del
DefaultMutableTreeNode = (DefaultMutableTreeNode) selPath.getLastPathCompone
nt ();
si (node.equals (alarmsNode)) {
System.out.println (el “select
ed alarma nodo”); ow del
caPopup.sh (e.getComponen
t (), e.getX (), e.getY ());
} si (node.equals (apModes)) {
System.out.println (“nodo de los paneles de alarma del select
ed”); ow del
capPopup.sh (e.getCompone
nt (), e.getX (), e.getY ());
} si (alarmsNode.isNodeChild (no
de)) {
System.out.println (“nodo de la alarma del select
ed”);
} si
) {
System.out.println (“nodo (de apModes.isNodeChild (nodo) del panel de alarma del select
ed”); la clase privada CAPopupMenu del
//////////
//////////
//////////
//////////
//////////
//
del
////////////////////////// del
del
del
del
del
del
}}}}} amplía JPopupMenu {selectAlarmMenuItem privado del
JMenuItem = nuevo JMenuItem (“crear la alarma”);
CAPopupMenu público () {el
agrega (selectAlarmMenuItem);
selectAlarmMenuItem.addAct
ionListene
r (nuevo ActionListener () {vacío del público del
actionPerformed (ActionEven
t e) {
System.out.println (“alarma del creati
ng”);
del
}}); la clase privada CAPPopupMenu del
//////////
//////////
//////////
//////////
//////////
//
del
} ////////////////////////// del
} amplía JPopupMenu {selectAlarmMenuItem privado del
JMenuItem = nuevo JMenuItem (“crear el panel de alarma”);
CAPPopupMenu público () {el
agrega (selectAlarmMenuItem);
selectAlarmMenuItem.addAct
ionListene
r (nuevo ActionListener () {vacío del público del
actionPerformed (ActionEven
t e) {
System.out.println (“el panel de alarma del creati
ng”);
del
}});
==========================
==========
==========
==========
==========
====
import java.awt del
del
del
}}}. Componente;
import java.awt. Dimensión;
import java.awt. Juego de herramientas;
import java.util. Órdenes;
import javax.swing.JFrame; clase RunMonitorPanel {
del
public/** construir un caso. ¡el
de */
RunMonitorPanel () {
}/** el
* centrar un componente en el screen.
* la blanco del @param el componente a ser vacío privado de los parásitos atmosféricos de centered.
*/
centerOnScreen (blanco componente) {
si (blanco! = anular) {dimensión del
screenSize = Toolkit.getDefaultToolkit (
) .getScree
nSize (); La dimensión del
targetSize = target.getSize ();
si (targetSize.height > screenSize.height) {
targetSize.height = screenSize.height;
del
} si (targetSize.width > screenSize.width) {
targetSize.width = screenSize.width;
}
internacional x = (screenSize.width -)/2 de targetSize.width;
internacional y = (screenSize.height -)/2 de targetSize.height;
target.setLocation (x, y); el
del
del
}}/** el
* crear y demostrar a GUI.
*/
el createAndShowGUI vacío estático privado () {el
//Create y fijó el marco de window.
JFrame = nuevo JFrame (“MonitorPanel”);
frame.setDefaultCloseOpera
tion (JFram
e.EXIT_ON_
CLOSE); el
// fijó el panel del contenido pane.
MonitorPanel = nuevo MonitorPanel ();
frame.getContentPane () .add
(el panel); el
// fijó algunos valores para el display
panel.setConfigPath (” /tmp/
config ");
panel.setConfigMode (“RW”); alarmNames de la secuencia del
[] = {“a1”, “a2”, “a3”};
panel.setAlarmNames (Arrays
.asList (al
armNames))
; alarmPanelNames de la secuencia del
[] = {“ap1”, “ap2”, “ap3”};
panel.setAlarmPanelNames (A
rrays.asLi
st (alarmPa
nelNames))
; el paquete del
// y demuestra el window.
frame.pack (); el
centerOnScreen (marco);
frame.setVisible (verdad); el
del
}/** el
* crear y demostrar a GUI.
*/
el vacío público de los parásitos atmosféricos principal los args) (de la secuencia [] {
javax.swing.SwingUtilities
.invokeLat
er (nuevo Runnable () {vacío del público del
funcionan () {createAndShowGUI del
();
del
}});
==========================
==========
==========
==========
==========
del
del
}} class= del
Respuesta : Problema del árbol del GUI
Conjeturo que debe estar menos 45:
DONDE providerID ADENTRO (“A000000015210B”, “A000000003731B
")
E Input_Date <� DATEADD="">
o
DONDE providerID ADENTRO (“A000000015210B”, “A000000003731B
")
Y Received_Date > DATEADD (día, 45, Input_Date)
Otras soluciones
Cómo fijar un número de líneas en un informe
Cómo fijar extremo del aeropuerto como servidor del DHCP en el LAN con SonicWall
Ediciones del enlace hipertexto
Agregar la fecha a MySQL
Pares de las preguntas de Apple
El DNS reverso no empareja la bandera del smtp
¿Cómo puedo funcionar conmigo PC en modo seguro?
HISTOGRAMA CON EL CP Y EL ANÁLISIS DE CPK
reglas no corrientes de la perspectiva
volver un valor