нужна помощь с ComboBoxes в Java. Просмотрел похожие вопросы, нашел одно слегка связанное, но не то, с чем я столкнулся.JComboBox с другой ошибкой JComboBoxes (несколько раз)
нужно загрузить определенные блоки в комбо-боксы в зависимости от выбранных элементов в драгоценном поле со списком:
думает получить некоторые процедуры сделать в медицинском центре: Выберите procedure-> получить список врачей, которые делают это, выберите врача-> получите список доступных часов и т. д.
Один выбор работает отлично (будь то «процедура-> список врачей» или «список врачей-> их рабочее время») но выполнение более чем одного из этих изменений не работает.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Arrays;
public class GUIbandymas extends JFrame {
String[] start={"Choose","Choice1", "Choice2"};
String[] Option1={"Choose","A1"};
String[] Option2={"Choose","A2","A3"};
String[] Option3={"Choose","a","b","c","d"};
String[] Option4={"Choose","1","2","3","4"};
String[] Option5={"Choose","I","II","III","IV"};
String[] pradinis={"Pasirinkite Laika"};
String[] p1={"Pasirinkite Gydytoja"};
static double kainaR;
static double kainaK;
JComboBox<String> G=new JComboBox<String>(p1);
JComboBox<String> proc;
JComboBox<String> laikas=new JComboBox<String>(pradinis);
JComboBox<String> minutes;
JButton button = new JButton ("Registuotis");
JLabel label = new JLabel("Moketi uz vizita");
JLabel suma = new JLabel();
public GUIbandymas() throws Exception {
setValueProc(start);
frame();
}
public void frame()
{
JFrame frame = new JFrame();
frame.setVisible(true);
frame.setSize(500,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.add(proc);
panel.add(G);
panel.add(laikas);
panel.add(button);
button.setEnabled(false);
//panel.add(minutes);
frame.add(panel);
panel.add(label);
panel.add(suma);
proc.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
if(proc.getSelectedItem().toString().equals("Choice1"))
{
setGyd(Option1);
}
if(proc.getSelectedItem().toString().equals("Choice2"))
{
setGyd(Option2);
}
}
});
G.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent a) {
if(G.getSelectedItem().toString().equals("A1"))
{
setLaikas(Option3);
}
if(G.getSelectedItem().toString().equals("A2"))
{
setLaikas(Option4);
}
if(G.getSelectedItem().toString().equals("A3"))
{
setLaikas(Option5);
}
}
});//JComboBox
}
public void setGyd(String[] s)
{
G.removeAllItems();
for(int i=0; i<s.length; i++)
{
G.addItem(s[i]);
}
}
public void setValueProc(String[] sarasas)
{
proc=new JComboBox<String>(sarasas);
}
public void setLaikas(String[] sarasas)
{
laikas.removeAllItems();
for(int i=0; i<sarasas.length; i++)
{
laikas.addItem(sarasas[i]);
}
}
}
Im в остро нуждаются в каких-либо предложений и возможных исправлений, IM склонен думать, что это имеет какое-то отношение слушателей действий, так как методы работают, но им в убыток, так как я не могу определить, что это ,
EDITED: фактический код должен работать, кажется, что ненужных вещей из других файлов осталось. ПРИМЕЧАНИЕ: это работа с графическим интерфейсом, просто запустите его в вас main() :)
На это гораздо легче ответить, если вы предоставите рабочий автономный пример, то есть что-то, что можно выполнить и протестировать, а не только проверять код. Вы также опустили внедрение для setBoxNValue (..), что весьма важно для поведения, которое вы хотите. – Steinar
отредактирует мой OP со всем кодом, однако из-за того, что im использует данные, считанные из файлов, плохо передает предопределенные массивы :) – user225827
Если вы прокомментируете G.addActionListener ... код будет (несколько) работать, то же самое с proc.addActionListener. ...(хотя JComboBox proc, нужно будет инициировать со значениями A1, A2 и A3, чтобы проверить, правильно ли он работает, что он делает), однако оба они вместе ... – user225827