1 / 1 / 1
Регистрация: 25.10.2011
Сообщений: 42
1

NetBeans JComboBox и картинки

02.02.2013, 01:07. Показов 2386. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть проэкт в нетбинс, там комбобокс, нужно реализлвать там маленькие картинки.
Ну я думаю понятно что я хочу, как реализовать ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.02.2013, 01:07
Ответы с готовыми решениями:

Проблема с JComboBox в NetBeans
При попытке связать таблицу в БД и JComboBox не удается отобразить текстовое поле из БД. Уникальный...

JComboBox
Выполняю задание по книжке : 1. Создайте Swing-приложение для размещения заказов на покупку...

JComboBox
помогите с jcombobox разобраться.На примитивном уровне. Вот выбираем число Два из одного списка,...

JComboBox с Key и Value
Мне часто в приложении нужен комбобокс, который можно заполнить из БД(поля: идентификатор, текст),...

8
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
02.02.2013, 10:58 2
извините, но не понятно что вы хотите
Цитата Сообщение от iCaesar Посмотреть сообщение
Есть проэкт в нетбинс, там комбобокс, нужно реализлвать там маленькие картинки.
там это где? в комбобоксах или в проекте?
0
1 / 1 / 1
Регистрация: 25.10.2011
Сообщений: 42
02.02.2013, 11:42  [ТС] 3
Вот наглядный пример

0
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
02.02.2013, 12:38 4
насколько, бегло просмотрев тему, я понял, вам надо написать свой renderer для комбо бокса. Тутариал,
0
1 / 1 / 1
Регистрация: 25.10.2011
Сообщений: 42
02.02.2013, 13:41  [ТС] 5
Это я уже понял, мне не понятно где именно его писать ? Я просто с нетбинсом недавно подружился, еще не особо врублюсь в его структуру, пример кода у меня тоже есть, а вот куда его вопхнуть ?
0
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
02.02.2013, 13:46 6
код покажите
0
1 / 1 / 1
Регистрация: 25.10.2011
Сообщений: 42
02.02.2013, 14:59  [ТС] 7
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package currencyconvertor;
 
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
 
/**
 *
 * @author Сергей
 */
public class MainFrame extends javax.swing.JFrame {
 
    /**
     * Creates new form MainFrame
     */
    public MainFrame() throws IOException  {
        initComponents();
        resultTextField.setVisible(false);
        resultLbl.setVisible(false);
        // ======================== Мой код ===================== //
        // =========== Object Currency ========================== //
        Currency curr = new Currency();
        // =========== Object Currency ========================== //
        
        // Icons Combo Box //
        String[] items = { "RUR", "USD", "EUR", "UAH" };
        fromComboBox.setModel(new javax.swing.DefaultComboBoxModel(items));
        toComboBox.setModel(new javax.swing.DefaultComboBoxModel(items));
        // Icons Combo Box //
        
        
        // ======================== Мой код ===================== //
    }
 
    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {
 
        jDialog1 = new javax.swing.JDialog();
        fromComboBox = new javax.swing.JComboBox();
        toComboBox = new javax.swing.JComboBox();
        jLabel1 = new javax.swing.JLabel();
        inValueTextField = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        ConvertButton = new javax.swing.JButton();
        ClearButton = new javax.swing.JButton();
        resultLbl = new javax.swing.JLabel();
        resultTextField = new javax.swing.JTextField();
        showExchangeButton = new javax.swing.JButton();
 
        javax.swing.GroupLayout jDialog1Layout = new javax.swing.GroupLayout(jDialog1.getContentPane());
        jDialog1.getContentPane().setLayout(jDialog1Layout);
        jDialog1Layout.setHorizontalGroup(
            jDialog1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        jDialog1Layout.setVerticalGroup(
            jDialog1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );
 
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Конвертор валют");
        setBackground(new java.awt.Color(255, 255, 255));
        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        setName(""); // NOI18N
        setResizable(false);
 
        fromComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
 
        toComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
 
        jLabel1.setText("Введите сумму:");
 
        jLabel2.setText("В валюте:");
 
        jLabel3.setText("Пересчитать на:");
 
        ConvertButton.setText("Расчитать");
        ConvertButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ConvertButtonActionPerformed(evt);
            }
        });
 
        ClearButton.setText("Очистить");
        ClearButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ClearButtonActionPerformed(evt);
            }
        });
 
        resultLbl.setText("Результат:");
        resultLbl.setName("resultLbl"); // NOI18N
 
        resultTextField.setEditable(false);
        resultTextField.setName(""); // NOI18N
 
        showExchangeButton.setText("Показать курс");
        showExchangeButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                showExchangeButtonActionPerformed(evt);
            }
        });
 
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jLabel1)
                        .addContainerGap())
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(resultLbl)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(resultTextField))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addComponent(ConvertButton)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(showExchangeButton)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(ClearButton))
                    .addComponent(inValueTextField)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jLabel3)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(toComboBox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jLabel2)
                        .addGap(51, 51, 51)
                        .addComponent(fromComboBox, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(inValueTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(fromComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(toComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(21, 21, 21)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(ConvertButton)
                        .addComponent(showExchangeButton))
                    .addComponent(ClearButton))
                .addGap(17, 17, 17)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(resultLbl)
                    .addComponent(resultTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
        );
 
        pack();
        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        java.awt.Dimension dialogSize = getSize();
        setLocation((screenSize.width-dialogSize.width)/2,(screenSize.height-dialogSize.height)/2);
    }// </editor-fold>
 
    private void showExchangeButtonActionPerformed(java.awt.event.ActionEvent evt) {
 
        String U = String.format("%.4f",(1 / (Currency.uahRate / 10)) * 10);
        String E = String.format("%.4f",(1 * Currency.eurRate) / (Currency.uahRate / 10));
        String S = String.format("%.4f",(1 * Currency.usdRate) / (Currency.uahRate / 10));
                
    JOptionPane.showMessageDialog(jDialog1,
              "1 $ = "+S+" грн.\n"
            + "1 € = "+E+" грн.\n"
            + "10 р = "+U,
            "Курс валют",JOptionPane.PLAIN_MESSAGE);
    }
 
    private void ConvertButtonActionPerformed(java.awt.event.ActionEvent evt) {
        try {        
            resultTextField.setText(Currency.getResult(Double.valueOf(inValueTextField.getText()),
                    fromComboBox.getSelectedIndex(), toComboBox.getSelectedIndex())+" "+toComboBox.getSelectedItem());
        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
        resultTextField.setVisible(true);
        resultLbl.setVisible(true);
    }
 
    private void ClearButtonActionPerformed(java.awt.event.ActionEvent evt) {
        resultTextField.setVisible(false);
        resultLbl.setVisible(false);
        fromComboBox.setSelectedIndex(0);
        toComboBox.setSelectedIndex(0);
        inValueTextField.setText(null);
    }
 
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see [url]http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html[/url] 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>
 
        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    new MainFrame().setVisible(true);
                } catch (IOException ex) {
                    Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
    }
    // Variables declaration - do not modify
    private javax.swing.JButton ClearButton;
    private javax.swing.JButton ConvertButton;
    private javax.swing.JComboBox fromComboBox;
    private javax.swing.JTextField inValueTextField;
    private javax.swing.JDialog jDialog1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel resultLbl;
    private javax.swing.JTextField resultTextField;
    private javax.swing.JButton showExchangeButton;
    private javax.swing.JComboBox toComboBox;
    // End of variables declaration
}
0
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
02.02.2013, 16:27 8
1. Мой вам совет, перестаньте создавать формы в редакторе, научитесь сначала все писать руками, а потом уже используйте редакторы. Мало того что вы не понимаете что делается в коде так еще это все выглядит ужасно. и начните писать руками.

2. Попробуем модифицировать ваш код, как NetBeans к нему отнесется не знаю.
Сначала создадим клас renderer
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import javax.swing.*;
import java.awt.*;
 
/**
 * @author Drygba
 *         Date: 02.02.13
 */
public class ComboBoxRender extends JLabel implements ListCellRenderer{
 
    private ImageIcon[] icon;
    private String[] textBox;
    public ComboBoxRender(ImageIcon[] icon, String[] textBox){
        this.icon = icon;
        this.textBox = textBox;
    }
 
    @Override
    public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus){
        int selecIndex = ((Integer)value).intValue();
        setIcon(icon[selecIndex]);
        setText(textBox[selecIndex]);
        return this;
    }
}
Потом:
после строки
Java
1
// ======================== Мой код ===================== //
пишем
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
String[] items = { "RUR", "USD", "EUR", "UAH" };
int sizeBox = items.length;
 
ImageIcon[] image = new ImageIcon[sizeBox];
//Заполняем массив картинок. Картинки лежат в корне проекта!!!
//Названия картинок свои впишите!!!!!!!!
image[0] = new ImageIcon("RUR.png");
image[1] = new ImageIcon("USD.png");
image[2] = new ImageIcon("EUR.png");
image[3] = new ImageIcon("UAH.png");
 
        Integer[] intArray = new Integer[sizeBox];
        for (int i = 0; i<sizeBox; i++){
            intArray[i] = new Integer(i);
        }
 
fromComboBox = new JComboBox(intArray);
fromComboBox.setRenderer(new ComboBoxRender(image, items));
Все ваше между строк
Java
1
// ======================== Мой код ===================== //
удалите, кроме
Java
1
 Currency curr = new Currency();//не в курсе что это у вас
Запустится ли он у вас - не знаю.
ИМХО - Легче все переписать начисто чем тут что то делать.

Кликните здесь для просмотра всего текста
рабочий вариант
ComboBoxRender
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import javax.swing.*;
import java.awt.*;
 
/**
 * @author Drygba
 *         Date: 02.02.13
 */
public class ComboBoxRender extends JLabel implements ListCellRenderer{
 
    private ImageIcon[] icon;
    private String[] textBox;
    public ComboBoxRender(ImageIcon[] icon, String[] textBox){
        this.icon = icon;
        this.textBox = textBox;
    }
 
    @Override
    public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus){
        int selecIndex = ((Integer)value).intValue();
        setIcon(icon[selecIndex]);
        setText(textBox[selecIndex]);
        return this;
    }
}
import javax.swing.*;
import java.awt.*;
 
/**
 * @author Drygba
 *         Date: 02.02.13
 */
public class  extends JLabel implements ListCellRenderer{
 
    private ImageIcon[] icon;
    private String[] textBox;
    public ComboBoxRender(ImageIcon[] icon, String[] textBox){
        this.icon = icon;
        this.textBox = textBox;
    }
 
    @Override
    public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus){
        int selecIndex = ((Integer)value).intValue();
        setIcon(icon[selecIndex]);
        setText(textBox[selecIndex]);
        return this;
    }
}
ComboBoxPic
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import javax.swing.*;
 
/**
 * @author Drygba
 *         Date: 02.02.13
 */
public class ComboBoxPic extends JFrame{
 
    ComboBoxPic(){
        super("ComboPic");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public static void main(String[] arg){
        ComboBoxPic cbp = new ComboBoxPic();
        String[] cbText = {"Австралия","Габон"};
        int sizeBox = cbText.length;
        Integer[] intArray = new Integer[sizeBox];
        for (int i = 0; i<sizeBox; i++){
            intArray[i] = new Integer(i);
        }
        ImageIcon[] image = new ImageIcon[sizeBox];
        image[0] = new ImageIcon("au.png");
        image[1] = new ImageIcon("gabon.png");
 
 
        JComboBox cb = new JComboBox(intArray);
        cb.setRenderer(new ComboBoxRender(image, cbText));
 
        cbp.add(cb);
        cbp.pack();
        cbp.setVisible(true);
    }
}
Изображения
  
1
1 / 1 / 1
Регистрация: 25.10.2011
Сообщений: 42
02.02.2013, 18:35  [ТС] 9
Дело в том что я вобще рабоаю в эклипсе, а то по ТЗ все именно в нетбинсе нужно делать, а я его не знаю и не нравится он мне.
Спасибо за ответ.
0
02.02.2013, 18:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.02.2013, 18:35
Помогаю со студенческими работами здесь

JTable и JComboBox
Подскажите пожайлуста! У меня есть два combobox. Один отвечает за столбцы, второй за строки....

Значение jComboBox
День добрый! Джаву изучаю не по книжкам, методом проб, т.к. перехожу с .Net (C#) и есть между ними...

JTable в JComboBox
Надо чтобы при раскрытии комбобокса в нем отображалась таблица, в которой можно было бы выбрать...

Загвоздка по JComboBox
Приветствую коллеги! Пишу программу для заполнения формы документа. Реализовал вывод данных на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru