Desktop
Website
Multimedia
Database
Security
Enterprise
Вопрос : Проблема вала GUI
Самая лучшая дорога объяснить мою проблему следующим образом…
Please составляет 2 архива MonitorPanel и RunMonitorPanel и бежит RunMonitorPanel class.
You увидит малый GUI хлопает вверх с валом с 2 узлами «панелями» и «режимами». право
Step 1. - щелкните дальше любыми из этих ветвями, котор оно всплывающе «создаст панель сигнала тревоги» и «создайте сигнал тревоги».
Step 2. Теперь расширьте любые узлы (вы r увидите app1, app2 etc). Делает
Why раздела 1. что шипучка вверх не приходит вне теперь?
import java.awt.BorderLayout;
import java.awt. Панель;
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.Список;
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;тип MonitorPanel
public
расширяет инструменты TreeSelectionListener панели {configPanel
приватное JPanel
= новое JPanel (); configPathLabel
приватное JLabel = новое JLabel («курс»); configPathField
приватное JTextField = новое JTextField (20); configModeLabel
приватное JLabel = новое JLabel («режим»); configModeField
приватное JTextField = новое JTextField (2); rootNode
приватное DefaultMutableTreeNode
// = новое DefaultMutableTreeNode («to
p»); apModes
приватные DefaultMutableTreeNode = новое DefaultMutableTreeNode («pa
nels»); alarmsNode
приватное DefaultMutableTreeNode = новое DefaultMutableTreeNode («mo
des»); treeModel
приватное DefaultTreeModel = новое
DefaultTreeModel (rootNode); вал
приватный JTree; treePane
приватное JScrollPane; caPopup
приватное CAPopupMenu = новое CAPopupMenu (); capPopup
приватное CAPPopupMenu = новое CAPPopupMenu ();
//////////
//////////
//////////
//////////
//////////
//
///////////////////////////** стройки пример. */
общественное MonitorPanel () {провод
// panel
configPanel.setLayout config (новое BoxLayout (configPanel, BoxLayout.LINE_AXIS));
configPanel.add (configPath
Label);
configPanel.add (configPath
Field);
configPanel.add (configMode
Label);
configPanel.add (configMode
Field);
configPathField.setEditabl
e (ложное);
configModeField.setEditabl
e (ложное); провод
// tree
rootNode.add (apModes);
rootNode.add (alarmsNode); вал
= новое JTree (treeModel);
tree.setRootVisible (ложное);
tree.setShowsRootHandles (t
rue);
tree.getSelectionModel () .s
etSelectio
nMode (Tree
SelectionM
odel.SINGL
E_TREE_SEL
ECTION); treePane
= новое JScrollPane (вал); setLayout
// (новое BorderLayout ());
добавляет (configPanel, BorderLayout.NORTH);
добавляет (treePane, BorderLayout.CENTER);
tree.addMouseListener
// (новое MyMouseListener ()); setConfigPath свободного пространства публики
} (курс) {
configPathField.setText шнура (pa
th); setConfigMode свободного пространства публики
} (режим) {
configModeField.setText шнура (null == mo
de? "": режим); setAlarmPanelNames свободного пространства публики
} (имена) {
apModes.removeAllChildren List
ring> (
); имена
// установленные к в настоящее время list
для (имя шнура: имена) {addAPName
(имя, ложные); addAPName
общественное DefaultMutableTreeNode
}} (alarmPanelName шнура, булевское shouldBeVisible) {childNode
DefaultMutableTreeNode = новое DefaultMutableTreeNode (ala
rmPanelNam
e);
treeModel.insertNodeInto (c
hildNode, apModes, apModes.getChildCount ());
если (shouldBeVisible), то {
tree.scrollPathToVisible (n
ew TreePath (childNode.getPath
())); childNode
} возвращенное; setAlarmNames свободного пространства публики
} (имена) {
alarmsNode.removeAllChildr
en List
(); имена
// установленные к в настоящее время list
для (имя шнура: имена) {addAlarmName
(имя, ложные); addAlarmName
общественное DefaultMutableTreeNode
}} (alarmName шнура, булевское shouldBeVisible) {childNode
DefaultMutableTreeNode = новое DefaultMutableTreeNode (ala
rmName);
treeModel.insertNodeInto (c
hildNode, alarmsNode,
alarmsNode.getChildCount ());
если (shouldBeVisible), то {
tree.scrollPathToVisible (n
ew TreePath (childNode.getPath
())); childNode
} возвращенное; valueChanged свободное пространство публики @Override
} (TreeSelection
Event e) {
//Returns последний элемент курса метода selection.
//This полезно только когда модель выбора позволяет одиночный узел selection.
DefaultMutableTreeNode = (DefaultMutableTreeNode) tree.getLastSelectedPathCo
mponent ();
если (null == узла) //Nothing будет selected.
, то {возвращением
;
System.out.println
} («
TreeSe
lectionLis
tener.valu
eChanged (): node=» + node.getUserObject ()); тип MyDefaultMutableTreeNode
//////////
//////////
//////////
//////////
//////////
//
//////////////////////////
} приватный статический расширяет DefaultMutableTreeNode {
общественное MyDefaultMutableTreeNode (userObject) {
O
bject супер (userObject); isLeaf @Override
} общественное булевское () {ложное
возвращенное;
//////////
//////////
//////////
//////////
//////////
//
//////////////////////////
}}/**
* слушает для запроса показать popup
*/
приватный тип, котор MyMouseListener расширяет MouseAdapter {свободное пространство публики @Override
mousePressed (MouseEvent e) {maybeShowPopup
(e); свободное пространство публики @Override
} mouseReleased (MouseEvent e) {maybeShowPopup
(e); maybeShowPopup
} приватное пустое (MouseEvent e) {
если (e.isPopupTrigger, то ()) {selPath
TreePath
= tree.getPathForLocation (e.
getX (), e.getY ());
если (selPath! = аннулируйте) {узел
DefaultMutableTreeNode = (DefaultMutableTreeNode) selPath.getLastPathCompone
nt ();
если (node.equals, то (alarmsNode)) {
System.out.println («select
ed тревожит узел»); ow
caPopup.sh (e.getComponen
t (), e.getX (), e.getY ());
} еще если (node.equals, то (apModes)) {
System.out.println («узел панелей сигнала тревоги select
ed»); ow
capPopup.sh (e.getCompone
nt (), e.getX (), e.getY ());
} еще если (alarmsNode.isNodeChild, то (no
de)) {
System.out.println («узел сигнала тревоги select
ed»);
} еще если (
), то {
System.out.println apModes.isNodeChild (узла) («узел панели сигнала тревоги select
ed»); тип CAPopupMenu
//////////
//////////
//////////
//////////
//////////
//
//////////////////////////
}}}}} приватный расширяет JPopupMenu {selectAlarmMenuItem
приватное JMenuItem = новое JMenuItem («создайте сигнал тревоги»);
общественное CAPopupMenu () {
добавляет (selectAlarmMenuItem);
selectAlarmMenuItem.addAct
ionListene
r (новое ActionListener () {свободное пространство публики
actionPerformed (ActionEven
t e) {
System.out.println («сигнал тревоги creati
ng»);
}}); тип CAPPopupMenu
//////////
//////////
//////////
//////////
//////////
//
}
} ////////////////////////// приватный расширяет JPopupMenu {selectAlarmMenuItem
приватное JMenuItem = новое JMenuItem («создайте панель сигнала тревоги»);
общественное CAPPopupMenu () {
добавляет (selectAlarmMenuItem);
selectAlarmMenuItem.addAct
ionListene
r (новое ActionListener () {свободное пространство публики
actionPerformed (ActionEven
t e) {
System.out.println («панель сигнала тревоги creati
ng»);
}});
==========================
==========
==========
==========
==========
====
import java.awt
}}}. Компонент;
import java.awt. Размер;
import java.awt. Набор инструментов;
import java.util. Блоки;
import javax.swing.JFrame; тип RunMonitorPanel
public {
/** построьте пример.
*/
общественное RunMonitorPanel () {
}/**
* центризуйте компонент на screen.
* целью @param компонент, котор нужно быть свободное пространство static centered.
*/
приватное centerOnScreen (компонентная цель) {
если (цель! = аннулируйте) {размер
screenSize = Toolkit.getDefaultToolkit (
) .getScree
nSize (); Размер
targetSize = target.getSize ();
если (targetSize.height > screenSize.height), то {
targetSize.height = screenSize.height;
} если (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);
}}/**
* создайте и покажите GUI.
*/
приватное статическое пустое createAndShowGUI () {
//Create и setup рамка window.
JFrame = новое JFrame («MonitorPanel»);
frame.setDefaultCloseOpera
tion (JFram
e.EXIT_ON_
CLOSE);
// setup панель содержания pane.
MonitorPanel = новое MonitorPanel ();
frame.getContentPane () .add
(панель);
// установило некоторые значения для display
panel.setConfigPath (» /tmp/
config ");
panel.setConfigMode («rw»); alarmNames шнура
[] = {«a1», «a2», «a3»};
panel.setAlarmNames (Arrays
.asList (al
armNames))
; alarmPanelNames шнура
[] = {«ap1», «ap2», «ap3»};
panel.setAlarmPanelNames (A
rrays.asLi
st (alarmPa
nelNames))
; пакет
// и показывает window.
frame.pack ();
centerOnScreen (рамка);
frame.setVisible (поистине);
}/**
* создайте и покажите GUI.
*/
общественное свободное пространство static главным образом (args) {
javax.swing.SwingUtilities
.invokeLat
er шнура [] (новое Runnable () {свободное пространство публики
бегут () {createAndShowGUI
();
}});
==========================
==========
==========
==========
==========
}} class=
Ответ : Проблема вала GUI
Я угадываю он должно быть минус 45:
ГДЕ providerID ВНУТРИ («A000000015210B», «A000000003731B
")
И Input_Date <� DATEADD="">
или
ГДЕ providerID ВНУТРИ («A000000015210B», «A000000003731B
")
И Received_Date > DATEADD (день, 45, Input_Date)
Другие решения
Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
Шнур ошибки в блоке задвижки?
сколько вариант сервера SQL на одной машине
Внешний вид 2007 не может архивный файл открытой сети сохраненный
Активно директория DNS записывает вопрос
Отчет о доступа 2010 экспорта к CSV с коллекторами?
Прокладчик OCE 9400 не начинает
как добавить десятичное место в формуле в отчете о кристалла seagate
Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
VB6 к VS2010 - консультации тренировки?