Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как сделать чтобы в combobox был текст, но выводил он мне int значения, то есть цифры

perfect ideal Знаток (398), на голосовании 2 недели назад
У меня есть форма добавления данных, там есть текстбоксы и комбобоксах. В комбобоксе выбираются должности сотрудников, но они в БД являются Кодом (Kod_doljnost) (связанные таблицы Sotrudnik и Doljnost). Мне нужно сделать так, чтобы я выбирал в combobox должность и она была написана буквами и чтобы я мог нажать добавить и в таблицу занеслась соответствующая цифра.
Голосование за лучший ответ
Vadim Egorov Гуру (4587) 1 месяц назад
В Java можно использовать классы JComboBox и DefaultComboBoxModel для реализации аналогичного функционала. Вот пример:

```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;

public class MainFrame extends JFrame {
private JComboBox<String> comboBox;
private JButton addButton;

public MainFrame() {
setTitle("Пример ComboBox");
setSize(300, 150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);

initComponents();
}

private void initComponents() {
setLayout(new FlowLayout());

// Предположим, что у вас есть список должностей и соответствующие им коды
List<Doljnost> listDoljnostey = new ArrayList<>();
// Заполните список должностей из базы данных или другого источника данных

// Создание ComboBoxModel для хранения данных
DefaultComboBoxModel<String> comboBoxModel = new DefaultComboBoxModel<>();
for (Doljnost doljnost : listDoljnostey) {
comboBoxModel.addElement(doljnost.getNazvanieDoljnosti()); // Добавляем текстовое значение в модель
}

// Создание JComboBox с указанием ComboBoxModel
comboBox = new JComboBox<>(comboBoxModel);
add(comboBox);

// Кнопка для добавления записи
addButton = new JButton("Добавить");
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// Получение выбранного элемента (текста) из ComboBox
String selectedText = (String) comboBox.getSelectedItem();
// Здесь можно найти соответствующий код должности из списка listDoljnostey и добавить его в базу данных
// Пример: int kodDoljnosti = listDoljnostey.get(comboBox.getSelectedIndex()).getKodDoljnosti();
System.out.println("Добавлена запись с должностью: " + selectedText);
}
});
add(addButton);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
MainFrame frame = new MainFrame();
frame.setVisible(true);
}
});
}
}

class Doljnost {
private int kodDoljnosti;
private String nazvanieDoljnosti;

public Doljnost(int kodDoljnosti, String nazvanieDoljnosti) {
this.kodDoljnosti = kodDoljnosti;
this.nazvanieDoljnosti = nazvanieDoljnosti;
}

public int getKodDoljnosti() {
return kodDoljnosti;
}

public String getNazvanieDoljnosti() {
return nazvanieDoljnosti;
}
}
```

Этот код создает графический интерфейс с комбо-боксом и кнопкой "Добавить". Выбрав элемент из комбо-бокса и нажав кнопку "Добавить", вы увидите текст выбранного элемента в консоли. Вам нужно будет настроить логику добавления данных в базу данных в соответствии с вашими потребностями.
Jurijus Zaksas Искусственный Интеллект (426074) 1 месяц назад
Сделай соотв. класс, перепиши ему метод ToString, добавляй в комбо объекты соотв. класса и получай любые их свойства по своему усмотрению через свойство SelectedItem и приведение типов.
Похожие вопросы