OSDN Git Service

[予約ダイアログ]自動予約編集への対応に伴うレイアウト変更
[tainavi/TinyBannavi.git] / TinyBannavi / src / tainavi / JComboBoxPanel.java
1 package tainavi;\r
2 \r
3 import java.awt.Dimension;\r
4 import java.awt.ItemSelectable;\r
5 import java.awt.Rectangle;\r
6 import java.awt.event.ActionListener;\r
7 import java.awt.event.ItemListener;\r
8 \r
9 import javax.swing.BoxLayout;\r
10 import javax.swing.ComboBoxModel;\r
11 import javax.swing.JComboBox;\r
12 import javax.swing.JLabel;\r
13 import javax.swing.JPanel;\r
14 \r
15 public class JComboBoxPanel extends JPanel implements ItemSelectable,WideComponent {\r
16 \r
17         private static final long serialVersionUID = 1L;\r
18 \r
19         private JComboBoxWithPopup jcombobox = null;\r
20         private JLabel jlabel = null;\r
21         \r
22         private final int h = 25;\r
23 \r
24         // 旧版\r
25         public JComboBoxPanel(String s, int labelWidth, int comboboxWidth) {\r
26                 makeComboBoxPanel(s, labelWidth, comboboxWidth, false);\r
27         }\r
28 \r
29         // 新版\r
30         public JComboBoxPanel(String s, int labelWidth, int comboboxWidth, boolean horizontal) {\r
31                 makeComboBoxPanel(s, labelWidth, comboboxWidth,  horizontal);\r
32         }\r
33         \r
34         private void makeComboBoxPanel(String s, int labelWidth, int comboboxWidth, boolean horizontal) {\r
35                 if ( horizontal == true ) {\r
36                         // 左・右\r
37                         this.setLayout(new BoxLayout(this,BoxLayout.LINE_AXIS));\r
38                         \r
39                         jlabel = new JLabel(s);\r
40                         Dimension d = jlabel.getPreferredSize();\r
41                         d.width = labelWidth;\r
42                         d.height = 100;\r
43                         jlabel.setMaximumSize(d);\r
44                         this.add(jlabel);\r
45                         \r
46                         jcombobox = new JComboBoxWithPopup();\r
47                         d = jcombobox.getPreferredSize();\r
48                         d.width = comboboxWidth;\r
49                         d.height = 100;\r
50                         jcombobox.setMaximumSize(d);\r
51                         this.add(jcombobox);\r
52                 }\r
53                 else {\r
54                         // 上・下\r
55                         this.setLayout(null);\r
56                         \r
57                         this.add(jlabel = new JLabel(s));\r
58                         //Dimension d1 = jlabel.getPreferredSize();\r
59                         jlabel.setBounds(new Rectangle(0,0,labelWidth,h));\r
60                         \r
61                         this.add(jcombobox = new JComboBoxWithPopup());\r
62                         //Dimension d2 = jcombobox.getPreferredSize();\r
63                         jcombobox.setBounds(new Rectangle(5,25,comboboxWidth,h));\r
64                         \r
65                         this.setPreferredSize(new Dimension(comboboxWidth+5,h*2+5));\r
66                 }\r
67         }\r
68 \r
69         public void removeAllItems() {\r
70                 this.jcombobox.removeAllItems();\r
71         }\r
72         \r
73         public void addItem(Object o) {\r
74                 this.jcombobox.addItem(o);\r
75         }\r
76         \r
77         public int getSelectedIndex() {\r
78                 return this.jcombobox.getSelectedIndex();\r
79         }\r
80         public Object getSelectedItem() {\r
81                 return this.jcombobox.getSelectedItem();\r
82         }\r
83         public Object getItemAt(int index) {\r
84                 return this.jcombobox.getItemAt(index);\r
85         }\r
86         \r
87         public int getItemCount() {\r
88                 return this.jcombobox.getItemCount();\r
89         }\r
90         \r
91         public void setSelectedItem(Object o) {\r
92                 this.jcombobox.setSelectedItem(o);\r
93         }\r
94         public void setSelectedIndex(int anIndex) {\r
95                 this.jcombobox.setSelectedIndex(anIndex);\r
96         }\r
97         \r
98         public void setEditable(boolean b) {\r
99                 this.jcombobox.setEditable(b);\r
100         }\r
101         \r
102         @Override\r
103         public void setEnabled(boolean b) {\r
104                 this.jlabel.setEnabled(b);\r
105                 this.jcombobox.setEnabled(b);\r
106         }\r
107         @Override\r
108         public boolean isEnabled() {\r
109                 return this.jcombobox.isEnabled();\r
110         }\r
111         \r
112         public void setToolTipText(String s) {\r
113                 this.jlabel.setToolTipText(s);\r
114         }\r
115         \r
116         public void setText(String s) {\r
117                 this.jlabel.setText(s);\r
118         }\r
119         \r
120         public ComboBoxModel getModel() {\r
121                 return this.jcombobox.getModel();\r
122         }\r
123 \r
124         public JComboBox getJComboBox() { return jcombobox; }\r
125 \r
126         // オーバーライドではない\r
127         \r
128         public void addActionListener(ActionListener l) {\r
129                 this.jcombobox.addActionListener(l);\r
130         }\r
131         \r
132         /*\r
133         public ActionListener[] getActionListeners() {\r
134                 return this.jcombobox.getActionListeners();\r
135         }\r
136         */\r
137         \r
138         public void removeActionListener(ActionListener l) {\r
139                 this.jcombobox.removeActionListener(l);\r
140         }\r
141         \r
142         // オーバーライド\r
143 \r
144         @Override\r
145         public void addPopupWidth(int w) {\r
146                 this.jcombobox.addPopupWidth(w);\r
147         }\r
148         \r
149         @Override\r
150         public void addItemListener(ItemListener l) {\r
151                 this.jcombobox.addItemListener(l);\r
152         }\r
153 \r
154         @Override\r
155         public Object[] getSelectedObjects() {\r
156                 return this.jcombobox.getSelectedObjects();\r
157         }\r
158 \r
159         @Override\r
160         public void removeItemListener(ItemListener l) {\r
161                 this.jcombobox.removeItemListener(l);\r
162         }\r
163 }\r