Vraag : Het Probleem van de Boom GUI

De beste manier om mijn probleem te verklaren is als volgt…/>Please

You in werking stellen zullen zien een kleine GUI met een boom met twee knopen „panelen“ en „wijzen“ opduikt.

Step 1. Klik op om het even welk van deze takken met de rechtermuisknop het popup „alarm tot paneel“ en „zal leiden tot Alarm“ leiden.

Step 2. Breid nu om het even welke knopen (u zult r app1, app2 enz. zien) uit. 1.

Why is dat pop omhooggaand niet uit nu komt?

import java.awt.BorderLayout;
import java.awt. Comité;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Lijst;
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;de


public klasse MonitorPanel breidt de instrumenten TreeSelectionListener van het Comité {


privé JPanel configPanel = nieuwe JPanel () uit;
privé JLabel configPathLabel = nieuwe JLabel („Weg“);
privé JTextField configPathField = nieuwe JTextField (20);
privé JLabel configModeLabel = nieuwe JLabel („Wijze“);
privé JTextField configModeField = nieuwe JTextField (2);
//
privé DefaultMutableTreeNode rootNode = nieuwe DefaultMutableTreeNode („top“);
privé DefaultMutableTreeNode apModes = nieuwe DefaultMutableTreeNode („panels“);
privé DefaultMutableTreeNode alarmsNode = nieuwe DefaultMutableTreeNode („modes“);
privé DefaultTreeModel treeModel = nieuwe DefaultTreeModel (rootNode) ; boom
privé JTree;
privé JScrollPane treePane;
privé CAPopupMenu caPopup = nieuwe CAPopupMenu ();
privé CAPPopupMenu capPopup = nieuwe CAPPopupMenu ();
////////////////////////// ////////////////////////////////////////////////////

/** construeert een instantie. */
openbare MonitorPanel () {
// draad config panel
configPanel.setLayout (nieuwe BoxLayout (configPanel, BoxLayout.LINE_AXIS));
configPanel.add (configPathLabel);
configPanel.add (configPathField);
configPanel.add (configModeLabel);
configPanel.add (configModeField);
configPathField.setEditable;
configModeField.setEditable;
// draad tree
rootNode.add (apModes);
rootNode.add (alarmsNode); /> boom
tree.setRootVisible (valse) ;
tree.setShowsRootHandles (true);
tree.getSelectionModel () .setSelectionMode (TreeSelectionModel.SINGLE_TREE_SELECTION);

treePane = nieuwe JScrollPane (boom);
//
setLayout (nieuwe BorderLayout ());
voegt toe (configPanel, BorderLayout.NORTH);
voegt toe (treePane, BorderLayout.CENTER);
//
tree.addMouseListener (nieuwe MyMouseListener ()); /> openbare nietige setConfigPath
}

configPathField.setText (path); /> openbare nietige setConfigMode
}

configModeField.setText (mode ongeldige ==? "": wijze); /> openbare nietige setAlarmPanelNames
}

ring>) {
apModes.removeAllChildren ();
// namen wordt geplaatst aan huidige list
voor (de naam die van het Koord: naam) {
addAPName (valse naam,);
}
}

openbare DefaultMutableTreeNode addAPName (Koord alarmPanelName, shouldBeVisible van Boole) {
DefaultMutableTreeNode childNode = nieuwe DefaultMutableTreeNode (alarmPanelName);

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

als (shouldBeVisible) {
tree.scrollPathToVisible (new TreePath (childNode.getPath ())); /> terugkeer
}

openbare nietige setAlarmNames
}

namen List alarmsNode.removeAllChildren ();
// namen wordt geplaatst aan huidige list
voor (de naam die van het Koord: naam) {
addAlarmName (valse naam,);
}
}

openbare DefaultMutableTreeNode addAlarmName (Koord alarmName, shouldBeVisible van Boole) {
DefaultMutableTreeNode childNode = nieuwe DefaultMutableTreeNode (alarmName);

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

als (shouldBeVisible) {
tree.scrollPathToVisible (new TreePath (childNode.getPath ())); /> terugkeer
}

@Override
de openbare leegte
}

Event e) {
//Returns het laatste wegelement van de selection.
//This methode is nuttig slechts wanneer het selectiemodel één enkele selection.
DefaultMutableTreeNode knoop = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent toestaat ();

als (ongeldige knoop ==) //Nothing selected.
is {/> terugkeer }

System.out.println („TreeSelectionListener.valueChanged () : node=“ + node.getUserObject ()); de
}

////////////////////////// ////////////////////////////////////////////////////
privé statische klasse MyDefaultMutableTreeNode breidt DefaultMutableTreeNode {

openbare MyDefaultMutableTreeNode (Object userObject) uit {super
(userObject); /> @Override
openbare isLeaf
}

valse terugkeer }
}
////////////////////////// ////////////////////////////////////////////////////

/**
* letten op verzoek om popup
*/
de privé klasse MyMouseListener MouseAdapter uitbreidt {mousePressed/>
@Override
openbare leegte
maybeShowPopup (e); /> @Override
de openbare leegte
}

maybeShowPopup (e); /> privé nietige maybeShowPopup
}

als (e.isPopupTrigger ()) {

TreePath selPath = tree.getPathForLocation (e.getX (), e.getY ());


als (selPath! = verklaar) nietig {
DefaultMutableTreeNode knoop = (DefaultMutableTreeNode) selPath.getLastPathComponent ();
als (node.equals (alarmsNode)) {
System.out.println („selected alarmknoop“);
caPopup.sh ow (e.getComponent (), e.getX (), e.getY ());

} anders als (node.equals (apModes)) {
System.out.println („selected de knoop van alarmpanelen“);
capPopup.sh ow (e.getComponent (), e.getX (), e.getY ());

} anders als (alarmsNode.isNodeChild (node)) {
System.out.println („selected alarmknoop“);

} anders als (apModes.isNodeChild (knoop) ) {
System.out.println („selected de knoop van het alarmpaneel“); de
}
}

}
}
}
////////////////////////// ////////////////////////////////////////////////////

privé klasse CAPopupMenu breidt JPopupMenu {

privé JMenuItem selectAlarmMenuItem = nieuwe JMenuItem („cre�ër Alarm“) uit;

openbare CAPopupMenu () {

voegt toe (selectAlarmMenuItem);

selectAlarmMenuItem.addActionListener (nieuwe ActionListener () {actionPerformed/>
openbare leegte
t e) {
System.out.println („creating alarm“);
}
}); de

}
} ////////////////////////// ////////////////////////////////////////////////////

privé klasse CAPPopupMenu breidt JPopupMenu {

privé JMenuItem selectAlarmMenuItem = nieuwe JMenuItem („cre�ër het Comité van het Alarm“) uit;

openbare CAPPopupMenu () {

voegt toe (selectAlarmMenuItem);

selectAlarmMenuItem.addActionListener (nieuwe ActionListener () {actionPerformed/>
openbare leegte
t e) {
System.out.println („creating alarmpaneel“);
}
});

}
}
}

======================================================================
import java.awt. Component;
import java.awt. Afmeting;
import java.awt. Toolkit;
import java.util. Series;
import javax.swing.JFrame;

public klasse RunMonitorPanel {
/** een instantie. /> * het Centrum */
openbare RunMonitorPanel () {
}

/**
* @param doel screen.
*/
privé statische leegte te zijn centerOnScreen (het doel van de Component) {
als (doel! = ongeldig) {/> de Afmeting
) .getScreenSize (); /> de Afmeting

als (targetSize.height > screenSize.height) {
targetSize.height = screenSize.height;
}

als (targetSize.width > screenSize.width) {
targetSize.width = screenSize.width;
}

int. x = (screenSize.width - targetSize.width)/2;
int. y = (screenSize.height - targetSize.height)/2;

target.setLocation (x, y);
}
}

/**
* leidt en toont tot GUI.
*/
privé statische nietige createAndShowGUI () {
//Create en opstelling het window.
JFrame kader = nieuwe JFrame („MonitorPanel“);
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

// Opstelling het tevreden pane.
MonitorPanel paneel = nieuwe MonitorPanel ();
frame.getContentPane () .add (paneel);
// plaatste sommige waarden voor display
panel.setConfigPath (“ /tmp/config ");
panel.setConfigMode („rw“); /> Koord
panel.setAlarmNames (/>.asList ArraysarmNames)); /> Koord
panel.setAlarmPanelNames (Arrays.asList (alarmPanelNames)); het

// Pak en toont window.
frame.pack ();
centerOnScreen (kader); (ware)
frame.setVisible;
}

/**
* leidt en toont tot GUI.
*/
openbare statische nietige leiding (Koord [] args) {

javax.swing.SwingUtilities.invokeLater (nieuwe Jaagbaar () {/> openbare in werking gestelde leegte

createAndShowGUI ();
}
});
}
}

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



Antwoord : Het Probleem van de Boom GUI

Ik veronderstel het minus 45 zou moeten zijn:

WAAR providerID BINNEN („A000000015210B“, „A000000003731B“)
  EN Input_Date <� DATEADD="">
of

WAAR providerID BINNEN („A000000015210B“, „A000000003731B“)
  EN Received_Date > DATEADD (dag, 45, Input_Date)
Andere oplossingen  
 
programming4us programming4us