Fråga : Gui-Treeproblem

Det bäst långt som förklarar mitt problem, är som följer…
Please sammanställer tvåna sparar MonitorPanel och RunMonitorPanel och kör den ska RunMonitorPanelen class.

You ser upp lilla pop för en GUI med en tree med två knutpunkter ”paneler” och ”funktionslägen”.

Step 1. Högert - klicka på några av dessa förgrena sig den ska popup ”skapar larmpanelen”, och ”skapa larmet”.

Step 2. Utvidga nu några av knutpunkterna (du ska r ser app1, app2 etc.). Kliva 1.

Why är att popet inte är upp kommande ut nu?

import java.awt.BorderLayout;
import java.awt. 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;
public för
för
klassificerar MonitorPanel fördjupa panelen genomför TreeSelectionListener {för

privat JPanel configPanel för
= nya JPanel (); privat JLabel configPathLabel för
= nya JLabel (”bana”); privat JTextField configPathField för
= nya JTextField (20); privat JLabel configModeLabel för
= nya JLabel (”funktionsläge”); privat JTextField configModeField för
= nya JTextField (2); för
// privat DefaultMutableTreeNode rootNode för
= nya DefaultMutableTreeNode (”top”); privata DefaultMutableTreeNode apModes för
= nya DefaultMutableTreeNode (”panels”); privat DefaultMutableTreeNode alarmsNode för
= nya DefaultMutableTreeNode (”modes”); privat DefaultTreeModel treeModel för
= ny DefaultTreeModel (rootNode) ; privat JTree tree för
; privat JScrollPane treePane för
; privat CAPopupMenu caPopup för
= nya CAPopupMenu (); privat CAPPopupMenu capPopup för
= nya CAPPopupMenu (); ////////////////////////////////////////////////////

för
///////////////////////////** tankeskapelser en anföra som exempel. */
offentliga MonitorPanel () {
// binder configpanel configPanel.setLayout (nya BoxLayout (configPanel, BoxLayout.LINE_AXIS));
configPanel.add (configPathLabel);
configPanel.add (configPathField);
configPanel.add (configModeLabel);
configPanel.add (configModeField); (falsk)
configPathField.setEditable; (falsk)
configModeField.setEditable;
// binder tree rootNode.add (apModes);
rootNode.add (alarmsNode); tree för
= nya JTree (treeModel); falsk) för
tree.setRootVisible (;
tree.setShowsRootHandles (true);
tree.getSelectionModel () .setSelectionMode (TreeSelectionModel.SINGLE_TREE_SELECTION); treePane för
för
= nya JScrollPane (tree); setLayout för
för
// (nya BorderLayout ());
tillfogar (configPanel, BorderLayout.NORTH);
tillfogar (treePane, BorderLayout.CENTER);
tree.addMouseListener (nya MyMouseListener, för
// ()); setConfigPath för allmänhet för

för
} utan laga kraft (stränga banan) {
configPathField.setText (path); setConfigMode för allmänhet för

för
} utan laga kraft (stränga funktionsläget) {
configModeField.setText (ogiltig == för mode? "": funktionsläge); setAlarmPanelNames för allmänhet för

för
} utan laga kraft (Listring> namnger) {
apModes.removeAllChildren (); uppsättningen för
// namnger till strömlist
för (stränga känt: namnger) {addAPName för
(känt, falskt); för
} för
} offentlig DefaultMutableTreeNode addAPName för

(stränga alarmPanelName, boolean shouldBeVisible) {childNode för
DefaultMutableTreeNode = nya DefaultMutableTreeNode (alarmPanelName);

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

, om (shouldBeVisible) {
tree.scrollPathToVisible (new TreePath (childNode.getPath ())); childNode för

för
} återgång; setAlarmNames för allmänhet för

för
} utan laga kraft (List namnger) {
alarmsNode.removeAllChildren (); uppsättningen för
// namnger till strömlist
för (stränga känt: namnger) {addAlarmName för
(känt, falskt); för
} för
} offentlig DefaultMutableTreeNode addAlarmName för

(stränga alarmName, boolean shouldBeVisible) {childNode för
DefaultMutableTreeNode = nya DefaultMutableTreeNode (alarmName);

treeModel.insertNodeInto (childNode, alarmsNode, för alarmsNode.getChildCount ());

, om (shouldBeVisible) {
tree.scrollPathToVisible (new TreePath (childNode.getPath ())); childNode för

för
} återgång; valueChanged utan laga kraft för allmänhet för @Override
för

för
} (TreeSelectionEvent e) {
//Returns den sist banabeståndsdelen av metoden för selection.
//This är användbar, när endast valet modellerar låter en knutpunkt för singel selection.
DefaultMutableTreeNode = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent ();

, om (ogiltig knutpunkt==) //Nothing är selected.
{retur för
;

System.out.println för
} (”TreeSelectionListener.valueChanged () : node=” + node.getUserObject ()); statisk elektricitet för ////////////////////////////////////////////////////
för

////////////////////////// för
} den privata klassificerar MyDefaultMutableTreeNode fördjupa DefaultMutableTreeNode {

offentliga MyDefaultMutableTreeNode (Object userObject) {toppen
(userObject); isLeaf för @Override
för

för
} offentlig boolean () {återgångt falskt för
; ////////////////////////////////////////////////////

för
////////////////////////// för
för
}}/**
* lyssnar för att förfrågan ska visa privat popup
*/
klassificerar MyMouseListener fördjupa MouseAdapter {mousePressed utan laga kraft för allmänhet för @Override
för

(MouseEvent e) {maybeShowPopup för
(e); mouseReleased utan laga kraft för allmänhet för @Override
för

för
} (MouseEvent e) {maybeShowPopup för
(e); maybeShowPopup för

för
} privat utan laga kraft (MouseEvent e) {
, om (e.isPopupTrigger ()) {selPath för
TreePath för
= tree.getPathForLocation (e.getX (), e.getY ());

för
om (selPath! = ogiltigt) {knutpunkten för
DefaultMutableTreeNode = (DefaultMutableTreeNode) selPath.getLastPathComponent ();
, om (node.equals (alarmsNode)) {
System.out.println (”selected alarmerar knutpunkt”); ow för
caPopup.sh (e.getComponent (), e.getX (), e.getY ());

} annars, om (node.equals (apModes)) {
System.out.println (”det selected larmet panels knutpunkt”); ow för
capPopup.sh (e.getComponent (), e.getX (), e.getY ());

} annars, om (alarmsNode.isNodeChild (node)) {
System.out.println (”larmknutpunkten för selected”);

} annars om, ) {
System.out.println (”för larmpanel för selected knutpunkt” (för apModes.isNodeChild (knutpunkt)); privat ////////////////////////////////////////////////////

för
////////////////////////// för
för
för
för
för
för
}}}}} klassificerar CAPopupMenu fördjupa JPopupMenu {privat JMenuItem selectAlarmMenuItem för

= nya JMenuItem (”skapa larmet”);

offentliga CAPopupMenu () {

tillfogar (selectAlarmMenuItem);

selectAlarmMenuItem.addActionListener (nya ActionListener () {actionPerformed utan laga kraft för allmänhet för

(ActionEvent e) {
System.out.println (”larm för creating”);
för
}}); privat ////////////////////////////////////////////////////

för
} ////////////////////////// för

} klassificerar CAPPopupMenu fördjupa JPopupMenu {privat JMenuItem selectAlarmMenuItem för

= nya JMenuItem (”skapa larmpanelen”);

offentliga CAPPopupMenu () {

tillfogar (selectAlarmMenuItem);

selectAlarmMenuItem.addActionListener (nya ActionListener () {actionPerformed utan laga kraft för allmänhet för

(ActionEvent e) {
System.out.println (”larmpanel för creating”);
för
}});

======================================================================
import java.awt för
för
för

}}}. Del-;
import java.awt. Dimensionera;
import java.awt. Verktygslåda;
import java.util. Samlingar;
import javax.swing.JFrame;

public klassificerar RunMonitorPanel {

/** tankeskapelsen en anföra som exempel. offentlig RunMonitorPanel () {
}

för */
/**
* centrera ett del- på screen. * @param uppsätta som mål det del- för att vara centered.
*/
som den utan laga kraft privata statisk elektricitet centerOnScreen (del- uppsätta som mål) {
om (uppsätta som mål! = ogiltigt) {
dimensionerar screenSize = Toolkit.getDefaultToolkit () .getScreenSize ();
dimensionerar targetSize = target.getSize ();

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

för
} om (targetSize.width > screenSize.width) {
targetSize.width = screenSize.width;
}

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

target.setLocation (x, y);

för
för
}}/**
* skapa och visa GUI. */
den privata statisk elektricitet utan laga kraft createAndShowGUI () {
//Create och ställer in window. JFrame inramar = nya JFrame (”MonitorPanel”);
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

// ställer in den nöjda panelen för pane.
MonitorPanel = nya MonitorPanel ();
frame.getContentPane () .add (panel); uppsättningen för
// några värderar för display
panel.setConfigPath (” /tmp/config ");
panel.setConfigMode (”rw”);
stränger [] alarmNames = {”a1”, ”a2”, ”a3”};
panel.setAlarmNames (Arrays.asList (alarmNames));
stränger [] alarmPanelNames = {”ap1”, ”ap2”, ”ap3”};
panel.setAlarmPanelNames (Arrays.asList (alarmPanelNames)); packen för

// och visar window. frame.pack ();
centerOnScreen (inrama); (riktig)
frame.setVisible;

för
}/**
* skapa och visa GUI. */
den offentliga statisk elektricitet utan laga kraft huvudsakligt (stränga [] args) {

javax.swing.SwingUtilities.invokeLater (nytt Runnable () {körningen för allmänhet för

den utan laga kraft () {createAndShowGUI för
();
för
}});

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



för
för
}} " klar "

Svar : Gui-Treeproblem

Jag gissar det bör vara minus 45:

VAR providerID I (”A000000015210B”, ”A000000003731B”)
  OCH Input_Date <� DATEADD="">
eller

VAR providerID I (”A000000015210B”, ”A000000003731B”)
  OCH Received_Date > DATEADD (dag, 45, Input_Date)
Andra lösningar  
 
programming4us programming4us