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.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;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 (“top„); apModes riservati del
DefaultMutableTreeNode = nuovo DefaultMutableTreeNode (“panels„); alarmsNode riservato del
DefaultMutableTreeNode = nuovo DefaultMutableTreeNode (“modes„); 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 (configPathLabel);
configPanel.add (configPathField);
configPanel.add (configModeLabel);
configPanel.add (configModeField);
configPathField.setEditable (falso);
configModeField.setEditable (falso); legare del
// il tree
rootNode.add (apModes);
rootNode.add (alarmsNode); albero del
= nuovo JTree (treeModel); del
tree.setRootVisible;
tree.setShowsRootHandles (true);
tree.getSelectionModel () .setSelectionMode (TreeSelectionModel.SINGLE_TREE_SELECTION); 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 (path); setConfigMode di vuoto del pubblico del

del
} (modo) della stringa {
configModeField.setText (posizione di segnale minimo del == del mode? "": modo); setAlarmPanelNames di vuoto del pubblico del

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

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

se (shouldBeVisible) {
tree.scrollPathToVisible (new TreePath (childNode.getPath ())); childNode di ritorno del

del
}; setAlarmNames di vuoto del pubblico del

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

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

se (shouldBeVisible) {
tree.scrollPathToVisible (new TreePath (childNode.getPath ())); childNode di ritorno del

del
}; vuoto del pubblico del @Override
del

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

se (posizione di segnale minimo del == di nodo) //Nothing è selected.
{ritorno del
;

System.out.println del
} (“ di TreeSelectionListener.valueChanged (): node=„ + node.getUserObject ()); il codice categoria statico riservato MyDefaultMutableTreeNode del ////////////////////////////////////////////////////
del

////////////////////////// del
} estende DefaultMutableTreeNode {

MyDefaultMutableTreeNode pubblico (userObject) di Object {
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.getLastPathComponent ();
se (node.equals (alarmsNode)) {
System.out.println (“il selected allarma il nodo„); ow del
caPopup.sh (e.getComponent (), e.getX (), e.getY ());

} altrimenti se (node.equals (apModes)) {
System.out.println (“nodo dei pannelli di allarme del selected„); ow del
capPopup.sh (e.getComponent (), e.getX (), e.getY ());

} altrimenti se (alarmsNode.isNodeChild (node)) {
System.out.println (“nodo dell'allarme del selected„);

} altrimenti se () {
System.out.println (“nodo di apModes.isNodeChild (nodo) del pannello di allarme del selected„); 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.addActionListener (nuovo ActionListener () {vuoto del pubblico del

actionPerformed (ActionEvent e) {
System.out.println (“allarme del creating„);
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.addActionListener (nuovo ActionListener () {vuoto del pubblico del

actionPerformed (ActionEvent e) {
System.out.println (“pannello di allarme del creating„);
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 () .getScreenSize (); 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.setDefaultCloseOperation (JFrame.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 (alarmNames)); alarmPanelNames della stringa del
[] = {“ap1„, “ap2„, “ap3„};
panel.setAlarmPanelNames (Arrays.asList (alarmPanelNames)); 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.invokeLater (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  
 
programming4us programming4us