Desktop
Website
Multimedia
Database
Security
Enterprise
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.ActionListe
ner;
import java.awt.event.MouseAdapte
r;
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.TreeSele
ctionEvent
;
import javax.swing.event.TreeSele
ctionListe
ner;
import javax.swing.tree.DefaultMu
tableTreeN
ode;
import javax.swing.tree.DefaultTr
eeModel;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelec
tionModel;
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 (”to
p”); privata DefaultMutableTreeNode apModes för
= nya DefaultMutableTreeNode (”pa
nels”); privat DefaultMutableTreeNode alarmsNode för
= nya DefaultMutableTreeNode (”mo
des”); 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 (configPath
Label);
configPanel.add (configPath
Field);
configPanel.add (configMode
Label);
configPanel.add (configMode
Field); (falsk)
configPathField.setEditabl
e; (falsk)
configModeField.setEditabl
e;
// binder tree
rootNode.add (apModes);
rootNode.add (alarmsNode); tree för
= nya JTree (treeModel); falsk)
för
tree.setRootVisible (;
tree.setShowsRootHandles (t
rue);
tree.getSelectionModel () .s
etSelectio
nMode (Tree
SelectionM
odel.SINGL
E_TREE_SEL
ECTION); 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 (pa
th); setConfigMode för allmänhet för
för
} utan laga kraft (stränga funktionsläget) {
configModeField.setText (ogiltig == för mo
de? "": funktionsläge); setAlarmPanelNames för allmänhet för
för
} utan laga kraft (List
ring> 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 (ala
rmPanelNam
e);
treeModel.insertNodeInto (c
hildNode, apModes, apModes.getChildCount ());
, om (shouldBeVisible) {
tree.scrollPathToVisible (n
ew 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.removeAllChildr
en (); 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 (ala
rmName);
treeModel.insertNodeInto (c
hildNode, alarmsNode,
för alarmsNode.getChildCount ());
, om (shouldBeVisible) {
tree.scrollPathToVisible (n
ew 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
} (TreeSelection
Event 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.getLastSelectedPathCo
mponent ();
, om (ogiltig knutpunkt==) //Nothing är selected.
{retur för
;
System.out.println för
} (”TreeSe
lectionLis
tener.valu
eChanged ()
: node=” + node.getUserObject ()); statisk elektricitet för
//////////
//////////
//////////
//////////
//////////
//
för
////////////////////////// för
} den privata klassificerar MyDefaultMutableTreeNode fördjupa DefaultMutableTreeNode {
offentliga MyDefaultMutableTreeNode (O
bject 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.getLastPathCompone
nt ();
, om (node.equals (alarmsNode)) {
System.out.println (”select
ed alarmerar knutpunkt”); ow för
caPopup.sh (e.getComponen
t (), e.getX (), e.getY ());
} annars, om (node.equals (apModes)) {
System.out.println (”det select
ed larmet panels knutpunkt”); ow för
capPopup.sh (e.getCompone
nt (), e.getX (), e.getY ());
} annars, om (alarmsNode.isNodeChild (no
de)) {
System.out.println (”larmknutpunkten för select
ed”);
} annars om,
) {
System.out.println (”för larmpanel för select
ed 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.addAct
ionListene
r (nya ActionListener () {actionPerformed utan laga kraft för allmänhet för
(ActionEven
t e) {
System.out.println (”larm för creati
ng”);
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.addAct
ionListene
r (nya ActionListener () {actionPerformed utan laga kraft för allmänhet för
(ActionEven
t e) {
System.out.println (”larmpanel för creati
ng”);
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 (
) .getScree
nSize ();
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.setDefaultCloseOpera
tion (JFram
e.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 (al
armNames))
;
stränger [] alarmPanelNames = {”ap1”, ”ap2”, ”ap3”};
panel.setAlarmPanelNames (A
rrays.asLi
st (alarmPa
nelNames))
; 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
.invokeLat
er (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
Hur många skrivar av sidor r där i SQL-server?
OMA och OWA
Missa över mellan GLÅMIGA anslutningar för aktiv/för aktiv på en Cisco Router
ASP.Net tappar skuggar verkställer
Vad är ämna av ”den MAKEFILE” makroen i en makefile?
Ett rengöringsdukundantag uppstod därför att en HTTP 401 - det obehöriga svaret mottogs från okända
Funktionen måste använda en Updateable Query
PHP passerar parametrar till den on-line aktiveringssidan
Ethernetövergångskabel förbinder
döda ett processaa vid styrka, hur kan jag