1 | public void setPopupMenu(JPopupMenu menu) {↵ | | 1 | public void setPopupMenu(JPopupMenu menu) {↵
|
2 | JPopupMenu oldMenu = popupMenu;↵ | | 2 | JPopupMenu oldMenu = popupMenu;↵
|
3 | popupMenu = menu;↵ | | 3 | popupMenu = menu;↵
|
4 | firePropertyChange("popup", oldMenu, popupMenu);↵ | | 4 | firePropertyChange("popup", oldMenu, popupMenu);↵
|
5 | }↵ | | 5 | }↵
|
6 | ↵ | | |
|
7 | public void setIcon(Icon ico) {↵ | | 6 | public void setIcon(Icon ico) {↵
|
8 | Icon oldIcon = this.icon;↵ | | 7 | Icon oldIcon = this.icon;↵
|
9 | this.icon = ico;↵ | | 8 | this.icon = ico;↵
|
10 | iconBounds = new Rectangle(0, 0, ico.getIconWidth(), ico↵ | | 9 | iconBounds = new Rectangle(0, 0, ico.getIconWidth(), ico↵
|
11 | .getIconHeight());↵ | | 10 | .getIconHeight());↵
|
12 | border.setIcon(icon);↵ | | 11 | border.setIcon(icon);↵
|
13 | firePropertyChange("icon", oldIcon, icon);↵ | | 12 | firePropertyChange("icon", oldIcon, icon);↵
|
14 | }↵ | | 13 | }↵
|
15 | ↵ | | |
|
16 | ↵ | | |
|
17 | public Icon getIcon() {↵ | | 14 | public Icon getIcon() {↵
|
18 | return icon;↵ | | 15 | return icon;↵
|
19 | }↵ | | 16 | }↵
|
20 | ↵ | | |
|
21 | ↵ | | |
|
22 | public JPopupMenu getPopupMenu() {↵ | | 17 | public JPopupMenu getPopupMenu() {↵
|
23 | return popupMenu;↵ | | 18 | return popupMenu;↵
|
24 | }↵ | | 19 | }↵
|
25 | ↵ | | |
|
26 | ↵ | | |
|
27 | public Dimension getPreferredSize() {↵ | | 20 | public Dimension getPreferredSize() {↵
|
28 | Dimension size = super.getPreferredSize();↵ | | 21 | Dimension size = super.getPreferredSize();↵
|
29 | Insets insets = getInsets();↵ | | 22 | Insets insets = getInsets();↵
|
30 | Insets margin = getMargin();↵ | | 23 | Insets margin = getMargin();↵
|
31 | FontMetrics fm = getFontMetrics(getFont());↵ | | 24 | FontMetrics fm = getFontMetrics(getFont());↵
|
32 | size.height = Math.max(fm.getHeight(), icon.getIconHeight())↵ | | 25 | size.height = Math.max(fm.getHeight(), icon.getIconHeight())↵
|
33 | + insets.top + insets.bottom;↵ | | 26 | + insets.top + insets.bottom;↵
|
34 | return size;↵ | | 27 | return size;↵
|
35 | }↵ | | 28 | ↵
|
36 | ↵ | | |
|
37 | ↵ | | 29 | }↵
|
|
38 | private class MouseHandler extends MouseInputAdapter {↵ | | 30 | private class MouseHandler extends MouseInputAdapter {↵
|
39 | public void mouseMoved(MouseEvent e) {↵ | | 31 | public void mouseMoved(MouseEvent e) {↵
|
40 | if(iconBounds.contains(e.getPoint())) {↵ | | 32 | if (iconBounds.contains(e.getPoint())) {↵
|
41 | setCursor(Cursor.getDefaultCursor());↵ | | 33 | setCursor(Cursor.getDefaultCursor());↵
|
42 | } else {↵ | | 34 | } else {↵
|
43 | setCursor(Cursor.getPredefinedCursor(Cursor.TEXT_CURSOR));↵ | | 35 | setCursor(Cursor.getPredefinedCursor(Cursor.TEXT_CURSOR));↵
|
44 | }↵ | | 36 | }↵
|
45 | }↵ | | 37 | }↵
|
|
46 | public void mouseClicked(MouseEvent e) {↵ | | 38 | public void mouseClicked(MouseEvent e) {↵
|
47 | if(iconBounds.contains(e.getPoint())) {↵ | | 39 | if (iconBounds.contains(e.getPoint())) {↵
|
48 | if(popupMenu.isVisible()) {↵ | | 40 | if (popupMenu.isVisible()) {↵
|
49 | popupMenu.setVisible(false);↵ | | 41 | popupMenu.setVisible(false);↵
|
50 | } else {↵ | | 42 | } else {↵
|
51 | popupMenu.show(IconTextField.this, 0, getHeight()) | | 43 | popupMenu.show(IconTextField.this, 0, getHeight())
|