Поменять значения JList в зависимости от JComboBox - Java

Узнай цену своей работы

Формулировка задачи:

Добрый день всем. Подскажите, пожалуйста, мне нужно сделать простой словарь (рус-англ), список слов на одном языке нужно передать в JList, а чтобы выбрать сам язык, то его нужно выбрать через JComboBox. Вот код: FormClass.java
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.Vector;
 
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class FormClass extends JFrame {
    JTextField text;
    JButton button;
    JList list;
    JScrollPane listBox;
    JComboBox combo;
    JPanel panel;
    String[] eng, rus, temp;
    String line;
    int tempIndex, choice;
    
    public FormClass() throws FileNotFoundException{
        setLayout(new BorderLayout());
        panel = new JPanel();
        panel.setLayout(new GridLayout(1, 2));
        text = new JTextField();
        button = new JButton("Search");
        
        File file = new File("input.txt");
        Scanner sc = new Scanner(file);
        temp = new String[(int) file.length()];
 
        while(sc.hasNextLine()){
            line = sc.nextLine();
            temp = line.split("=");
        }
        rus = new String[temp.length];
        eng = new String[temp.length];
        for(int i = 0; i < temp.length; i++){
            if(i % 2 != 0){
                rus[i] = temp[i];
            }else{
                eng[i] = temp[i];
            }
        }
        
        list = new JList(new DefaultListModel());
        listBox = new JScrollPane(list);
        list.addListSelectionListener(new ListSelectionListener() {
            
            @Override
            public void valueChanged(ListSelectionEvent e) {
                // TODO Auto-generated method stub
                tempIndex = list.getSelectedIndex();
                text.setText(rus[tempIndex + 1]);
            }
        });
        
        combo = new JComboBox();
        combo.addItem("Eng");
        combo.addItem("Rus");
        combo.addItemListener(new ItemListener() {
            
            @Override
            public void itemStateChanged(ItemEvent e) {
                // TODO Auto-generated method stub
                
            }
        });
        
        panel.add(text);
        panel.add(button);
        add(panel, BorderLayout.NORTH);
        add(list, BorderLayout.CENTER);
        add(combo, BorderLayout.SOUTH);
    }
}
MainClass.java
import java.io.FileNotFoundException;
 
import javax.swing.WindowConstants;

public class MainClass {
 
    public static void main(String[] args) throws FileNotFoundException {
        // TODO Auto-generated method stub
        FormClass form = new FormClass();
        form.setSize(300, 300);
        form.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        form.setVisible(true);
    }
 
}

Решение задачи: «Поменять значения JList в зависимости от JComboBox»

textual
Листинг программы
JCombo.addItemListener(new java.awt.event.ItemListener() {
    public void itemStateChanged(java.awt.event.ItemEvent evt) {
        //Меняем содержимое JList
    }
});

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5