Microsoft
Software
Hardware
Network
Frage : GUI-Baum-Problem
Die beste Weise, mein Problem zu erklären ist, wie folgt…
Please die zwei Akten MonitorPanel und RunMonitorPanel kompilieren und das RunMonitorPanel class.
You sieht laufen lassen, dass ein kleines GUI oben mit einem Baum mit zwei Nullpunkten „Verkleidungen“ und „Modi“ knallt.
Step 1. Recht - irgendwelche Niederlassungen an klicken, die es Popup- „Alarmtafel“ herstellt und „Warnung verursachen“.
Step 2. Irgendwelche der Nullpunkte (Sie r sehen app1, app2 usw.) jetzt erweitern. Tun Schritt 1.
Why ist, dass der Knall oben nicht jetzt herauskommt?
import java.awt.BorderLayout;
import java.awt. Verkleidung;
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.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.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 Kategorie MonitorPanel verlängert Verkleidungswerkzeuge TreeSelectionListener {
privates JPanel configPanel = neues JPanel ();
privates JLabel configPathLabel = neues JLabel („Weg“);
privates JTextField configPathField = neues JTextField (20);
privates JLabel configModeLabel = neues JLabel („Modus“);
privates JTextField configModeField = neues JTextField (2);
//
privates DefaultMutableTreeNode rootNode = neues DefaultMutableTreeNode („to
p“);
private DefaultMutableTreeNode apModes = neues DefaultMutableTreeNode („pa
nels“);
privates DefaultMutableTreeNode alarmsNode = neues DefaultMutableTreeNode („mo
des“);
privates DefaultTreeModel treeModel = neues DefaultTreeModel (rootNode)
;
privater JTree Baum;
privates JScrollPane treePane;
privates CAPopupMenu caPopup = neues CAPopupMenu ();
privates CAPPopupMenu capPopup = neues CAPPopupMenu ();
//////////////////////////
//////////
//////////
//////////
//////////
//////////
//
/** Konstruieren ein Fall. */
allgemeines MonitorPanel () {
// Draht das Config panel
configPanel.setLayout (neues BoxLayout (configPanel, BoxLayout.LINE_AXIS));
configPanel.add (configPath
Label);
configPanel.add (configPath
Field);
configPanel.add (configMode
Label);
configPanel.add (configMode
Field);
configPathField.setEditabl
e (falsch);
configModeField.setEditabl
e (falsch);
// Draht das tree
rootNode.add (apModes);
rootNode.add (alarmsNode);
Baum = neues JTree (treeModel);
tree.setRootVisible (falsches)
;
tree.setShowsRootHandles (t
rue);
tree.getSelectionModel () .s
etSelectio
nMode (Tree
SelectionM
odel.SINGL
E_TREE_SEL
ECTION);
treePane = neues JScrollPane (Baum);
//
setLayout (neues BorderLayout ());
hinzufügen ORTH (configPanel, BorderLayout.NORTH);
hinzufügen NTER (treePane, BorderLayout.CENTER);
//
tree.addMouseListener (neues MyMouseListener ());
}
Öffentlichkeits-Lücke setConfigPath (Schnurweg) {
configPathField.setText (pa
th);
}
Öffentlichkeits-Lücke setConfigMode (Schnurmodus) {
configModeField.setText (mo
de == Null? "": Modus);
}
Öffentlichkeits-Lücke setAlarmPanelNames (List
ring> Namen) {
apModes.removeAllChildren (
);
// gesetzte Namen zum gegenwärtigen list
für (Schnurname: Namen) {
addAPName (Name, falsch);
}
}
allgemeines DefaultMutableTreeNode addAPName (Schnur alarmPanelName, Boolesches shouldBeVisible) {
DefaultMutableTreeNode childNode = neues DefaultMutableTreeNode (ala
rmPanelNam
e);
treeModel.insertNodeInto (c
hildNode, apModes, apModes.getChildCount ());
, wenn (shouldBeVisible) {
tree.scrollPathToVisible (n
ew TreePath (childNode.getPath
()));
}
RückholchildNode;
}
Öffentlichkeits-Lücke setAlarmNames (List
Namen) {
alarmsNode.removeAllChildr
en ();
// gesetzte Namen zum gegenwärtigen list
für (Schnurname: Namen) {
addAlarmName (Name, falsch);
}
}
allgemeines DefaultMutableTreeNode addAlarmName (Schnur alarmName, Boolesches shouldBeVisible) {
DefaultMutableTreeNode childNode = neues DefaultMutableTreeNode (ala
rmName);
treeModel.insertNodeInto (c
hildNode, alarmsNode, alarmsNode.getChildCount ()
);
, wenn (shouldBeVisible) {
tree.scrollPathToVisible (n
ew TreePath (childNode.getPath
()));
}
RückholchildNode;
}
@Override
Öffentlichkeitslücke valueChanged (TreeSelection
Event e) {
//Returns das letzte Wegelement der selection.
//This Methode ist nützlich, nur wenn das Vorwählermodell einen einzelnen selection.
DefaultMutableTreeNode Nullpunkt = (DefaultMutableTreeNode) tree.getLastSelectedPathCo
mponent erlaubt ();
, wenn (Nullpunkt == Null) //Nothing selected.
ist {
Rückkehr;
}
System.out.println („TreeSe
lectionLis
tener.valu
eChanged ()
: node=“ + node.getUserObject ());
}
//////////////////////////
//////////
//////////
//////////
//////////
//////////
//
private statische Kategorie MyDefaultMutableTreeNode verlängert DefaultMutableTreeNode {
allgemeines MyDefaultMutableTreeNode (O
bject userObject) {das
Super (userObject);
}
@Override
allgemeines Boolesches isLeaf () {
Rückholfalsches;
}
}
//////////////////////////
//////////
//////////
//////////
//////////
//////////
//
/**
* hört auf Antrag, popup
*/
private Kategorie zu zeigen, die MyMouseListener MouseAdapter verlängert {
@Override
Öffentlichkeitslücke (MouseEvent e) {
maybeShowPopup (e);
}
@Override
Öffentlichkeitslücke mouseReleased (MouseEvent e) {
maybeShowPopup (e);
}
privates leeres maybeShowPopup (MouseEvent e) {
, wenn (e.isPopupTrigger ()) {
TreePath selPath = tree.getPathForLocation (e.
getX (), e.getY ());
wenn (selPath! = null) {
DefaultMutableTreeNode Nullpunkt = (DefaultMutableTreeNode) selPath.getLastPathCompone
nt ();
, wenn (node.equals (alarmsNode)) {
System.out.println („select
ed alarmiert Nullpunkt“);
caPopup.sh ow (e.getComponen
t (), e.getX (), e.getY ());
} sonst, wenn (node.equals (apModes)) {
System.out.println („select
ed Alarmtafelnullpunkt“);
capPopup.sh ow (e.getCompone
nt (), e.getX (), e.getY ());
} sonst, wenn (alarmsNode.isNodeChild (no
de)) {
System.out.println („select
ed Warnungsnullpunkt“);
} sonst wenn (apModes.isNodeChild (Nullpunkt)
) {
System.out.println („select
ed Alarmtafelnullpunkt“);
}
}
}
}
}
//////////////////////////
//////////
//////////
//////////
//////////
//////////
//
private Kategorie CAPopupMenu verlängert JPopupMenu {
privates JMenuItem selectAlarmMenuItem = neues JMenuItem („Warnung verursachen“);
allgemeines CAPopupMenu () {
hinzufügen (selectAlarmMenuItem);
selectAlarmMenuItem.addAct
ionListene
r (neues ActionListener () {
Öffentlichkeitslücke (ActionEven
t e) {
System.out.println („creati
ng Warnung“);
}
});
}
} //////////////////////////
//////////
//////////
//////////
//////////
//////////
//
private Kategorie CAPPopupMenu verlängert JPopupMenu {
privates JMenuItem selectAlarmMenuItem = neues JMenuItem („Alarmtafel herstellen“);
allgemeines CAPPopupMenu () {
hinzufügen (selectAlarmMenuItem);
selectAlarmMenuItem.addAct
ionListene
r (neues ActionListener () {
Öffentlichkeitslücke (ActionEven
t e) {
System.out.println („creati
ng Alarmtafel“);
}
});
}
}
}
==========================
==========
==========
==========
==========
====
import java.awt. Bestandteil;
import java.awt. Maß;
import java.awt. Toolkit;
import java.util. Reihen;
import javax.swing.JFrame;
public Kategorie RunMonitorPanel {
/** einen Fall konstruieren. */
allgemeines RunMonitorPanel () {
}
/**
* einen Bestandteil auf dem screen.
zentrieren * @param Ziel der Bestandteil, zum centered.
*/
zu sein private Staticlücke centerOnScreen (Teilziel) {
wenn (Ziel! = null) {
Maß = Toolkit.getDefaultToolkit (
) .getScree
nSize ();
Maß targetSize = target.getSize ();
wenn (targetSize.height > screenSize.height) {
targetSize.height = screenSize.height;
}
wenn (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);
}
}
/**
* dem GUI.
*/
privates statisches leeres createAndShowGUI verursachen und zeigen () {
//Create und gründete den window.
JFrame Rahmen = neues JFrame („MonitorPanel“);
frame.setDefaultCloseOpera
tion (JFram
e.EXIT_ON_
CLOSE);
// gründete die Verkleidung des Inhalts pane.
MonitorPanel = neues MonitorPanel ();
frame.getContentPane () .add
(Verkleidung);
// einstellte etwas Werte für display
panel.setConfigPath/> (“ /tmp/
config ");
panel.setConfigMode („RW“);
Schnur [] alarmNames = {„a1“, „a2“, „a3“};
panel.setAlarmNames (Arrays
.asList (al
armNames))
;
Schnur [] alarmPanelNames = {„ap1“, „ap2“, „ap3“};
panel.setAlarmPanelNames (A
rrays.asLi
st (alarmPa
nelNames))
;
// Satz und zeigen das window.
frame.pack ();
centerOnScreen (Rahmen);
frame.setVisible (zutreffend);
}
/**
* die allgemeine Haupt Staticlücke verursachen und zeigen dem GUI.
*/
(Schnur [] args) {
javax.swing.SwingUtilities
.invokeLat
er (neues jagdbares () {
Öffentlichkeitslücke () {
createAndShowGUI ();
}
});
}
}
==========================
==========
==========
==========
==========
Antwort : GUI-Baum-Problem
Ich schätze, dass es minus 45 sein sollte:
WO providerID INNEN („A000000015210B“, „A000000003731B
")
UND Input_Date <� DATEADD="">
oder
WO providerID INNEN („A000000015210B“, „A000000003731B
")
UND Received_Date > DATEADD (Tag, 45, Input_Date)
Weitere Lösungen
Wort-Presse, die Frage bewirtet
asp.net: Mein Problem ist, benutze ich einen ajax Ergänzung Kalender, um BeginDate u. EndDate Werte einzutragen
Silverlight 4 UI Ereignisse
wie kann ich irgendeine Bildentschließung online ändern und sie zum lokalen PC dann innen sparen??
ZFS Sicherungshilfe Ubuntu 10.0.4 LTS
Form-Frage für Kristallreports
Betreffend INOTES in Lotos 8.5
Mühen, die ZWISCHEN Logik erhalten zu arbeiten
Spannungs-Sensor ermittelte einen Ausfall auf Bediener DELL-PowerEdge 2650
broadcom NIC teaming