Я новичок в Java и Swing, если кто-то может указать мне направление, это будет оценено.
Это один класс, строящий мою раму. Я считаю, что должен использовать ChangeListener, который вы видите добавленным, но ничего не сделал, кроме как скопировать метод с этого сайта.
Все, что я хочу сделать с моими вкладками, это установить их обратно в их состояние по умолчанию, если щелкнуть другую вкладку ... просто означает установить текстовые поля и выбор списка обратно в состояние и т. Д.
Будет ли метод, который мне нужен для этого, быть в моих классах для панелей или рамки? Нужно ли мне что-то менять? Я искал ответ, но не нашел того, что искал.
public class GUIFrame extends JFrame implements ChangeListener {
JTabbedPane tabs;
public GUIFrame(String title) {
JFrame frame = new JFrame(title);
Container c = frame.getContentPane();
pack();
buildGUI(c);
setFrameAttributes(frame);
}
private void buildGUI(Container c) {
tabs = new JTabbedPane(JTabbedPane.TOP, JTabbedPane.WRAP_TAB_LAYOUT);
MedicalSystemIO medLogs = new MedicalSystemIO();
c.setLayout(new BorderLayout());
c.add("Center", tabs);
tabs.addTab("Specialty", new SpecialtyPanel(medLogs.getListOfSpecialties()));
tabs.addTab("Doctor", new DoctorPanel(medLogs.getListOfDoctors()));
tabs.addTab("Patient", new PatientPanel(medLogs.getListOfPatients()));
tabs.addTab("Treatment", new TreatmentPanel(medLogs.getListOfTreatments(), medLogs.getListOfPatients()));
tabs.addChangeListener(this);
}
@Override
public void stateChanged(ChangeEvent e) {
// TODO Auto-generated method stub
if(e.getSource() instanceof JTabbedPane)
tabs = (JTabbedPane) e.getSource();
System.out.println("Selected paneNo : " + tabs.getSelectedIndex());
}
Это метод из класса "public TreatmentPanel (...)". Я не включил большинство методов, но некоторые из них - ActionListener и ListSelectionListener.
private void buildPanel(ArrayList<Treatment> treatments, ArrayList<Patient> patients) {
setLayout(new BorderLayout());
model = new DefaultListModel<Treatment>();
list = new JList<Treatment>(model);
list.setModel(model);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setSize(20,80);
list.setFixedCellWidth(150);
scroll = new JScrollPane(list, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
this.patients = new ArrayList<Patient>(patients);
this.treatments = new ArrayList<Treatment>();
JPanel jpaInput = createInputPanel();
JPanel jpaProcess = createProcessPanel();
JPanel jpaOutput = createOutputPanel();
add("North", jpaInput);
add("South", jpaProcess);
add("Center", jpaOutput);
}