Question : Problème d'arbre de GUI

La meilleure manière d'expliquer mon problème est comme suit… le
Please compilent les deux dossiers MonitorPanel et RunMonitorPanel et courent le RunMonitorPanel class.

You verra qu'un petit GUI saute vers le haut avec un arbre avec deux noeuds « panneaux » et « modes ». droite du

Step 1. - cliquer dessus quelconque d'entre ces branches qu'elle popup « créera le panneau d'alarme » et « créer l'alarme ».

Step 2. Augmenter maintenant les noeuds l'uns des (vous r verrez app1, app2 etc.). Font-ils le

Why d'étape 1. est-il que le bruit vers le haut ne sort pas maintenant ?

import java.awt.BorderLayout;
import java.awt. Panneau ;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent ;
import java.util.Liste ;
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 classe MonitorPanel du
public du
du
prolonge des instruments TreeSelectionListener {configPanel privé de panneau de
JPanel de

= nouveau JPanel () ; configPathLabel privé du
JLabel = nouveau JLabel (« chemin ») ; configPathField privé du
JTextField = nouveau JTextField (20) ; configModeLabel privé du
JLabel = nouveau JLabel (« mode ») ; configModeField privé du
JTextField = nouveau JTextField (2) ; rootNode privé du
DefaultMutableTreeNode du
// = nouveau DefaultMutableTreeNode (« top ») ; apModes privés du
DefaultMutableTreeNode = nouveau DefaultMutableTreeNode (« panels ») ; alarmsNode privé du
DefaultMutableTreeNode = nouveau DefaultMutableTreeNode (« modes ») ; treeModel privé du
DefaultTreeModel = nouveau de DefaultTreeModel (rootNode) ; arbre privé du
JTree ; treePane privé du
JScrollPane ; caPopup privé du
CAPopupMenu = nouveau CAPopupMenu () ; capPopup privé du
CAPPopupMenu = nouveau CAPPopupMenu () ; ////////////////////////////////////////////////////

du
///////////////////////////** constructions un exemple. */
MonitorPanel public () {fil de
// le panel
configPanel.setLayout (nouveau BoxLayout (configPanel, BoxLayout.LINE_AXIS) de config);
configPanel.add (configPathLabel) ;
configPanel.add (configPathField) ;
configPanel.add (configModeLabel) ;
configPanel.add (configModeField) ;
configPathField.setEditable (faux) ;
configModeField.setEditable (faux) ; fil du
// le tree
rootNode.add (apModes) ;
rootNode.add (alarmsNode) ; arbre du
= nouveau JTree (treeModel) ; du
tree.setRootVisible ;
tree.setShowsRootHandles (true) ;
tree.getSelectionModel () .setSelectionMode (TreeSelectionModel.SINGLE_TREE_SELECTION) ; treePane du
du
= nouveau JScrollPane (arbre) ; setLayout du
du
// (nouveau BorderLayout ()); le
s'ajoutent (configPanel, BorderLayout.NORTH) ; le
s'ajoutent (treePane, BorderLayout.CENTER) ;
tree.addMouseListener (nouveau MyMouseListener du
// ()); setConfigPath de vide de public du

du
} (chemin de corde) {
configPathField.setText (path) ; setConfigMode de vide de public du

du
} (mode de corde) {
configModeField.setText (nulle de == de mode ? "" : mode) ; setAlarmPanelNames de vide de public du

du
} (noms de Listring>) {
apModes.removeAllChildren () ; noms réglés du
// au list
pour (nom de corde : noms) {addAPName de
(nom, faux) ; addAPName public du

DefaultMutableTreeNode du
du
}} (alarmPanelName de corde, shouldBeVisible booléen) {childNode de
DefaultMutableTreeNode = nouveau DefaultMutableTreeNode (alarmPanelName) ;

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

si (shouldBeVisible) {
tree.scrollPathToVisible (new TreePath (childNode.getPath ())); childNode de retour du

du
} ; setAlarmNames de vide de public du

du
} (noms de List) {
alarmsNode.removeAllChildren () ; noms réglés du
// au list
pour (nom de corde : noms) {addAlarmName de
(nom, faux) ; addAlarmName public du

DefaultMutableTreeNode du
du
}} (alarmName de corde, shouldBeVisible booléen) {childNode de
DefaultMutableTreeNode = nouveau DefaultMutableTreeNode (alarmName) ;

treeModel.insertNodeInto (childNode, alarmsNode, d'alarmsNode.getChildCount ()) ;

si (shouldBeVisible) {
tree.scrollPathToVisible (new TreePath (childNode.getPath ())); childNode de retour du

du
} ; vide de public du @Override
du

du
} valueChanged (TreeSelectionEvent e) {le
//Returns le dernier élément de chemin de la méthode de selection.
//This est utile seulement quand le modèle de choix permet un noeud simple de selection.
DefaultMutableTreeNode = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent () ;

si (nulle de == de noeud) //Nothing est selected.
{retour de
;

System.out.println du
} ( « de TreeSelectionListener.valueChanged () : node= » + node.getUserObject ()); la classe statique privée MyDefaultMutableTreeNode du ////////////////////////////////////////////////////
du

////////////////////////// du
} prolonge DefaultMutableTreeNode {

MyDefaultMutableTreeNode public (userObject d'Object) {
superbe (userObject) ; isLeaf booléen public du @Override
du

du
} () {faux de retour de
; le ////////////////////////////////////////////////////

du
////////////////////////// du
du
}}/** le
* détecte à l'oreille la demande de montrer au popup
*/
la classe privée que MyMouseListener prolonge MouseAdapter {vide de public du @Override
de

mousePressed (MouseEvent e) {maybeShowPopup de
(e) ; le vide de public du @Override
du

du
} mouseReleased (MouseEvent e) {maybeShowPopup de
(e) ; maybeShowPopup vide privé du

du
} (MouseEvent e) {
si (e.isPopupTrigger ()) {selPath de
TreePath de
= tree.getPathForLocation (e.getX (), e.getY ());

du
si (selPath ! = annuler) {noeud de
DefaultMutableTreeNode = (DefaultMutableTreeNode) selPath.getLastPathComponent () ;
si (node.equals (alarmsNode)) {
System.out.println (le « selected alarme le noeud ») ; ow du
caPopup.sh (e.getComponent (), e.getX (), e.getY ());

} autrement si (node.equals (apModes)) {
System.out.println (« noeud de panneaux d'alarme de selected ») ; ow du
capPopup.sh (e.getComponent (), e.getX (), e.getY ());

} autrement si (alarmsNode.isNodeChild (node)) {
System.out.println (« noeud d'alarme de selected ») ;

} autrement si ) {
System.out.println (« noeud (d'apModes.isNodeChild (noeud) de panneau d'alarme de selected ») ; la classe privée CAPopupMenu du ////////////////////////////////////////////////////

du
////////////////////////// du
du
du
du
du
du
}}}}} prolonge JPopupMenu {selectAlarmMenuItem privé de

JMenuItem = nouveau JMenuItem (« créer l'alarme ») ;

CAPopupMenu public () {le

s'ajoutent (selectAlarmMenuItem) ;

selectAlarmMenuItem.addActionListener (nouvel ActionListener () {vide de public de

actionPerformed (ActionEvent e) {
System.out.println (« alarme de creating ») ;
du
}}) ; la classe privée CAPPopupMenu du ////////////////////////////////////////////////////

du
} ////////////////////////// du

} prolonge JPopupMenu {selectAlarmMenuItem privé de

JMenuItem = nouveau JMenuItem (« créer le panneau d'alarme ») ;

CAPPopupMenu public () {le

s'ajoutent (selectAlarmMenuItem) ;

selectAlarmMenuItem.addActionListener (nouvel ActionListener () {vide de public de

actionPerformed (ActionEvent e) {
System.out.println (« panneau d'alarme de creating ») ;
du
}}) ;

======================================================================
import java.awt du
du
du

}}}. Composant ;
import java.awt. Dimension ;
import java.awt. Trousse à outils ;
import java.util. Rangées ;
import javax.swing.JFrame ; classe RunMonitorPanel {le

du

public/** construire un exemple. le

de */
RunMonitorPanel () {
}/** le
* centrer un composant sur le screen.
* la cible de @param le composant à être vide privé de charge statique de centered.
*/
centerOnScreen (cible composante) {
si (cible ! = annuler) {dimension de
screenSize = Toolkit.getDefaultToolkit () .getScreenSize () ; La dimension du
targetSize = target.getSize () ;

si (targetSize.height > screenSize.height) {
targetSize.height = screenSize.height ;

du
} si (targetSize.width > screenSize.width) {
targetSize.width = screenSize.width ;
}

international X = (screenSize.width -) de targetSize.width/2 ;
international y = (screenSize.height -) de targetSize.height/2 ;

target.setLocation (x, y) ; le

du
du
}}/** le
* créer et montrer au GUI.
*/
le createAndShowGUI vide statique privé () {le
//Create et a installé l'armature de window.
JFrame = nouveau JFrame (« MonitorPanel ») ;
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE) ; le

// a installé le panneau du contenu pane.
MonitorPanel = nouveau MonitorPanel () ;
frame.getContentPane () .add (panneau) ; le
// a placé quelques valeurs pour le display
panel.setConfigPath ( » /tmp/config ") ;
panel.setConfigMode (« RW ») ; alarmNames de corde du
[] = {« a1 », « a2 », « a3 »} ;
panel.setAlarmNames (Arrays.asList (alarmNames)) ; alarmPanelNames de corde du
[] = {« ap1 », « ap2 », « ap3 »} ;
panel.setAlarmPanelNames (Arrays.asList (alarmPanelNames)) ; le paquet du

// et montrent le window.
frame.pack () ; le
centerOnScreen (armature) ;
frame.setVisible (vrai) ; le

du
}/** le
* créer et montrer au GUI.
*/
le vide public de charge statique principal (args de corde []) {

javax.swing.SwingUtilities.invokeLater (nouveau praticable () {vide de public de

fonctionnent () {createAndShowGUI de
() ;
du
}}) ;

==================================================================



du
du
}} class= de

Réponse : Problème d'arbre de GUI

Je devine qu'il devrait être sans 45 :

LÀ OÙ providerID DEDANS (« A000000015210B », « A000000003731B ")
  ET Input_Date <� DATEADD="">
ou

LÀ OÙ providerID DEDANS (« A000000015210B », « A000000003731B ")
  ET Received_Date > DATEADD (jour, 45, Input_Date)
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us