Avatar billede iceyblue Nybegynder
02. april 2003 - 15:13 Der er 2 kommentarer og
1 løsning

JComboBox og Vector

Hej,
er der nogen der kan give mig et kode-eksempel med en vector som indsættes i en JComboBox.
Avatar billede iceyblue Nybegynder
02. april 2003 - 15:16 #1
Her er min kode, vectoren hedder "data" og ligger i klassen Databaseadgang.java:

import java.util.*;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JLabel;
import java.awt.Rectangle;
import java.awt.Font;
import javax.swing.JComboBox;
import javax.swing.JTextField;
import javax.swing.JButton;

public class PatientData_GUI extends JFrame
{
  private JLabel jLabel1 = new JLabel();
  private JLabel pcpr = new JLabel();
  private JLabel fornavn = new JLabel();
  private JLabel efternavn = new JLabel();
  private JComboBox PCpr_Combo = new JComboBox();
  private JTextField fornavn_Textfield = new JTextField();
  private JTextField efternavn_Textfield = new JTextField();
  private JButton opdater_knap = new JButton();

  public PatientData_GUI()
  {
    try
    {
      jbInit();
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }

  }

  private void jbInit() throws Exception
  {
    this.getContentPane().setLayout(null);
    this.setSize(new Dimension(344, 297));
    this.setTitle("PatientData GUI");
    jLabel1.setText("Patientdata:");
    jLabel1.setBounds(new Rectangle(50, 35, 115, 15));
    jLabel1.setFont(new Font("Dialog", 1, 18));
    pcpr.setText("PatientCPR.:");
    pcpr.setBounds(new Rectangle(60, 70, 60, 15));
    fornavn.setText("Fornavn:");
    fornavn.setBounds(new Rectangle(60, 105, 55, 15));
    efternavn.setText("Efternavn:");
    efternavn.setBounds(new Rectangle(60, 140, 65, 15));
   
   
    PCpr_Combo.setBounds(new Rectangle(125, 65, 124, 20));

    PCpr_Combo.addItem(); <----HER SKAL DER VEL SKRIVES NOGET!!!!
   
    fornavn_Textfield.setText("jTextField1");
    fornavn_Textfield.setBounds(new Rectangle(125, 100, 160, 20));
    efternavn_Textfield.setText("jTextField2");
    efternavn_Textfield.setBounds(new Rectangle(125, 150, 160, 20));
    opdater_knap.setText("Opdater");
    opdater_knap.setBounds(new Rectangle(245, 230, 73, 27));
    this.getContentPane().add(opdater_knap, null);
    this.getContentPane().add(efternavn_Textfield, null);
    this.getContentPane().add(fornavn_Textfield, null);
    this.getContentPane().add(PCpr_Combo, null);
    this.getContentPane().add(efternavn, null);
    this.getContentPane().add(fornavn, null);
    this.getContentPane().add(pcpr, null);
    this.getContentPane().add(jLabel1, null);
  }
}
Avatar billede trp79 Nybegynder
02. april 2003 - 15:55 #2
Her er et eksempel hvor det er en arraylist (som består af firma objekter), det gøres på samme måde med en vector:

for(int j=0;j<firmaListe.size();j++)//Tilføjer firmer til comboboksen
jCBoxEditKPFirma.addItem(firmaListe.get(j));
jCBoxEditKPFirma.setSelectedItem(firma); //Hvis du vil select et bestemt objekt i comboboksen
Avatar billede mikkelbm Nybegynder
03. april 2003 - 01:08 #3
/*...... Jeg tager udgangspunkt i at du smider
din vector med over i din GUI-klasse
Så ser din konstruktor ud som følgende: ......*/


private Vector data;

public PatientData_GUI(Vector data)
{
  this.data = data;
  try
  {
    jbInit();
  }
  catch(Exception e)
  {
      e.printStackTrace();
  }
}

Og der hvor du vil tilføje vectoren til din JComboBox:

for(int i = 0; i < data.size(); i++)
{
  PCpr_Combo.addItem(data.get(i);
}

Læs mere her:
http://java.sun.com/products/jdk/1.2/docs/api/java/util/Vector.html

http://java.sun.com/products/jdk/1.2/docs/api/javax/swing/JComboBox.html

Håber det kunne hjælpe.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester