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.ActionListener;
import java.awt.event.MouseAdapter;
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.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;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 (“top”); apModes privados del
DefaultMutableTreeNode = nuevo DefaultMutableTreeNode (“panels”); alarmsNode privado del
DefaultMutableTreeNode = nuevo DefaultMutableTreeNode (“modes”); 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 (configPathLabel);
configPanel.add (configPathField);
configPanel.add (configModeLabel);
configPanel.add (configModeField);
configPathField.setEditable (falso);
configModeField.setEditable (falso); alambre del
// el tree
rootNode.add (apModes);
rootNode.add (alarmsNode); árbol del
= nuevo JTree (treeModel); del
tree.setRootVisible;
tree.setShowsRootHandles (true);
tree.getSelectionModel () .setSelectionMode (TreeSelectionModel.SINGLE_TREE_SELECTION); 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 (path); ¿setConfigMode del vacío del público del

del
} (modo) de la secuencia {
configModeField.setText (falta de información del == del mode? "": modo); setAlarmPanelNames del vacío del público del

del
} (nombres) de Listring> {
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 (alarmPanelName);

treeModel.insertNodeInto (childNode, apModes, apModes.getChildCount ());

si (shouldBeVisible) {
tree.scrollPathToVisible (new TreePath (childNode.getPath ())); childNode de vuelta del

del
}; setAlarmNames del vacío del público del

del
} (nombres) de List {
alarmsNode.removeAllChildren (); 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 (alarmName);

treeModel.insertNodeInto (childNode, alarmsNode, de alarmsNode.getChildCount ());

si (shouldBeVisible) {
tree.scrollPathToVisible (new TreePath (childNode.getPath ())); childNode de vuelta del

del
}; vacío del público del @Override
del

del
} valueChanged (TreeSelectionEvent 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.getLastSelectedPathComponent ();

si (falta de información del == del nodo) //Nothing es selected.
{vuelta del
;

System.out.println del
} ( “de TreeSelectionListener.valueChanged (): node=” + node.getUserObject ()); la clase estática privada MyDefaultMutableTreeNode del ////////////////////////////////////////////////////
del

////////////////////////// del
} amplía DefaultMutableTreeNode {

MyDefaultMutableTreeNode público (userObject) de Object {
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.getLastPathComponent ();
si (node.equals (alarmsNode)) {
System.out.println (el “selected alarma nodo”); ow del
caPopup.sh (e.getComponent (), e.getX (), e.getY ());

} si (node.equals (apModes)) {
System.out.println (“nodo de los paneles de alarma del selected”); ow del
capPopup.sh (e.getComponent (), e.getX (), e.getY ());

} si (alarmsNode.isNodeChild (node)) {
System.out.println (“nodo de la alarma del selected”);

} si ) {
System.out.println (“nodo (de apModes.isNodeChild (nodo) del panel de alarma del selected”); 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.addActionListener (nuevo ActionListener () {vacío del público del

actionPerformed (ActionEvent e) {
System.out.println (“alarma del creating”);
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.addActionListener (nuevo ActionListener () {vacío del público del

actionPerformed (ActionEvent e) {
System.out.println (“el panel de alarma del creating”);
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 () .getScreenSize (); 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.setDefaultCloseOperation (JFrame.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 (alarmNames)); alarmPanelNames de la secuencia del
[] = {“ap1”, “ap2”, “ap3”};
panel.setAlarmPanelNames (Arrays.asList (alarmPanelNames)); 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.invokeLater (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  
 
programming4us programming4us