Pergunta : Problema da árvore do GUI

A melhor maneira de explicar meu problema é como segue… o
Please compila as duas limas MonitorPanel e RunMonitorPanel e funciona o RunMonitorPanel class.

You considerará que um GUI pequeno estala acima com uma árvore com dois nós “painéis” e “modalidades”. direita do

Step 1. - estalar sobre qualqueras um filiais que emergente “criará o painel de alarme” e “criar o alarme”.

Step 2. Expandir agora alguns dos nós (você r verá app1, app2 etc.). Faz o

Why de etapa 1. é que o PNF acima não está saindo agora?

import java.awt.BorderLayout;
import java.awt. Painel;
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;a classe MonitorPanel do
public do
do
estende instrumentos TreeSelectionListener do painel {configPanel confidencial do
JPanel do

= JPanel novo (); configPathLabel confidencial do
JLabel = JLabel novo (“trajeto”); configPathField confidencial do
JTextField = JTextField novo (20); configModeLabel confidencial do
JLabel = JLabel novo (“modalidade”); configModeField confidencial do
JTextField = JTextField novo (2); rootNode confidencial do
DefaultMutableTreeNode do
// = DefaultMutableTreeNode novo (“top”); apModes confidenciais do
DefaultMutableTreeNode = DefaultMutableTreeNode novo (“panels”); alarmsNode confidencial do
DefaultMutableTreeNode = DefaultMutableTreeNode novo (“modes”); treeModel confidencial do
DefaultTreeModel = de DefaultTreeModel (rootNode); árvore confidencial do
JTree; treePane confidencial do
JScrollPane; caPopup confidencial do
CAPopupMenu = CAPopupMenu novo (); capPopup confidencial do
CAPPopupMenu = CAPPopupMenu novo (); ////////////////////////////////////////////////////

do
///////////////////////////** construções um exemplo. */
MonitorPanel público () {fio do
// o panel
configPanel.setLayout dos config (BoxLayout novo (configPanel, BoxLayout.LINE_AXIS));
configPanel.add (configPathLabel);
configPanel.add (configPathField);
configPanel.add (configModeLabel);
configPanel.add (configModeField);
configPathField.setEditable (falso);
configModeField.setEditable (falso); fio do
// o tree
rootNode.add (apModes);
rootNode.add (alarmsNode); árvore do
= JTree novo (treeModel); do
tree.setRootVisible;
tree.setShowsRootHandles (true);
tree.getSelectionModel () .setSelectionMode (TreeSelectionModel.SINGLE_TREE_SELECTION); treePane do
do
= JScrollPane novo (árvore); setLayout do
do
// (BorderLayout novo ()); o
adiciona (configPanel, BorderLayout.NORTH); o
adiciona (treePane, BorderLayout.CENTER);
tree.addMouseListener do
// (MyMouseListener novo ()); setConfigPath do vácuo do público do

do
} (trajeto) {
configPathField.setText da corda (path); setConfigMode do vácuo do público do

do
} (modalidade) {
configModeField.setText da corda (zero do == do mode? "": modalidade); setAlarmPanelNames do vácuo do público do

do
} (nomes) {
apModes.removeAllChildren de Listring> (); nomes ajustados do
// ao list
para (nome da corda: nomes) {addAPName do
(nome, falsos); addAPName público do

DefaultMutableTreeNode do
do
}} (alarmPanelName da corda, shouldBeVisible bôoleano) {childNode do
DefaultMutableTreeNode = DefaultMutableTreeNode novo (alarmPanelName);

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

se (shouldBeVisible) {
tree.scrollPathToVisible (new TreePath (childNode.getPath ())); childNode do retorno do

do
}; setAlarmNames do vácuo do público do

do
} (nomes) {
alarmsNode.removeAllChildren de List (); nomes ajustados do
// ao list
para (nome da corda: nomes) {addAlarmName do
(nome, falsos); addAlarmName público do

DefaultMutableTreeNode do
do
}} (alarmName da corda, shouldBeVisible bôoleano) {childNode do
DefaultMutableTreeNode = DefaultMutableTreeNode novo (alarmName);

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

se (shouldBeVisible) {
tree.scrollPathToVisible (new TreePath (childNode.getPath ())); childNode do retorno do

do
}; vácuo do público do @Override
do

do
} valueChanged (TreeSelectionEvent e) {o
//Returns o último elemento do trajeto do método de selection.
//This é útil somente quando o modelo de seleção permitir um único nó de selection.
DefaultMutableTreeNode = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent ();

se (zero do == do nó) //Nothing é selected.
{retorno do
;

System.out.println do
} (de “ TreeSelectionListener.valueChanged (): node=” + node.getUserObject ()); a classe de estática confidencial MyDefaultMutableTreeNode do ////////////////////////////////////////////////////
do

////////////////////////// do
} estende DefaultMutableTreeNode {

MyDefaultMutableTreeNode público (userObject) {
de Object super (userObject); isLeaf bôoleano público do @Override
do

do
} () {falso do retorno do
; o ////////////////////////////////////////////////////

do
////////////////////////// do
do
}}/** o
* aguarda até escutar o pedido mostrar ao popup
*/
a classe que confidencial MyMouseListener estende MouseAdapter {vácuo do público do @Override
do

mousePressed (MouseEvent e) {maybeShowPopup do
(e); o vácuo do público do @Override
do

do
} mouseReleased (MouseEvent e) {maybeShowPopup do
(e); maybeShowPopup vago confidencial do

do
} (MouseEvent e) {
se (e.isPopupTrigger ()) {selPath do
TreePath do
= tree.getPathForLocation (e.getX (), e.getY ());

do
se (selPath! = anular) {nó do
DefaultMutableTreeNode = (DefaultMutableTreeNode) selPath.getLastPathComponent ();
se (node.equals (alarmsNode)) {
System.out.println (o “selected alarma o nó”); ow do
caPopup.sh (e.getComponent (), e.getX (), e.getY ());

} mais se (node.equals (apModes)) {
System.out.println (do “nó dos painéis de alarme selected”); ow do
capPopup.sh (e.getComponent (), e.getX (), e.getY ());

} mais se (alarmsNode.isNodeChild (node)) {
System.out.println (do “nó do alarme selected”);

} mais se () {
System.out.println de apModes.isNodeChild (nó) (do “nó do painel de alarme selected”); a classe confidencial CAPopupMenu do ////////////////////////////////////////////////////

do
////////////////////////// do
do
do
do
do
do
}}}}} estende JPopupMenu {selectAlarmMenuItem confidencial do

JMenuItem = JMenuItem novo (“criar o alarme”);

CAPopupMenu público () {o

adiciona (selectAlarmMenuItem);

selectAlarmMenuItem.addActionListener (ActionListener novo () {vácuo do público do

actionPerformed (ActionEvent e) {
System.out.println (do “alarme creating”);
do
}}); a classe confidencial CAPPopupMenu do ////////////////////////////////////////////////////

do
} do

} ////////////////////////// estende JPopupMenu {selectAlarmMenuItem confidencial do

JMenuItem = JMenuItem novo (“criar o painel de alarme”);

CAPPopupMenu público () {o

adiciona (selectAlarmMenuItem);

selectAlarmMenuItem.addActionListener (ActionListener novo () {vácuo do público do

actionPerformed (ActionEvent e) {
System.out.println (do “painel de alarme creating”);
do
}});

======================================================================
import java.awt do
do
do

}}}. Componente;
import java.awt. Dimensão;
import java.awt. Conjunto de ferramentas;
import java.util. Disposições;
import javax.swing.JFrame; classe RunMonitorPanel do

public {

/** construir um exemplo. o

de */
RunMonitorPanel () {
}/** o
* centrar um componente no screen.
* o alvo do @param o componente a ser vácuo confidencial da estática de centered.
*/
centerOnScreen (alvo componente) {
se (alvo! = anular) {dimensão do
screenSize = Toolkit.getDefaultToolkit () .getScreenSize (); A dimensão do
targetSize = target.getSize ();

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

do
} se (targetSize.width > screenSize.width) {
targetSize.width = screenSize.width;
}

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

target.setLocation (x, y); o

do
do
}}/** o
* criar e mostrar ao GUI.
*/
o createAndShowGUI vago de estática confidencial () {o
//Create e setup o frame de window.
JFrame = JFrame novo (“MonitorPanel”);
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); o

// setup o painel do índice pane.
MonitorPanel = MonitorPanel novo ();
frame.getContentPane () .add (painel); o
// ajustou alguns valores para o display
panel.setConfigPath (” /tmp/config ");
panel.setConfigMode (“RW”); alarmNames da corda do
[] = {“a1”, “a2”, “a3”};
panel.setAlarmNames (Arrays.asList (alarmNames)); alarmPanelNames da corda do
[] = {“ap1”, “ap2”, “ap3”};
panel.setAlarmPanelNames (Arrays.asList (alarmPanelNames)); o bloco do

// e mostra o window.
frame.pack (); o
centerOnScreen (quadro);
frame.setVisible (verdadeiro); o

do
}/** o
* criar e mostrar ao GUI.
*/
o vácuo público da estática principal (args) {

javax.swing.SwingUtilities.invokeLater da corda [] (praticável novo () {vácuo do público do

funcionam () {createAndShowGUI do
();
do
}});

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



do
do
}} class= do

Resposta : Problema da árvore do GUI

Eu supor que deve ser menos 45:

ONDE providerID DENTRO (“A000000015210B”, “A000000003731B ")
  E Input_Date <� DATEADD="">
ou

ONDE providerID DENTRO (“A000000015210B”, “A000000003731B ")
  E Received_Date > DATEADD (dia, 45, Input_Date)
Outras soluções  
 
programming4us programming4us