Avatar billede netspinner Nybegynder
22. maj 2006 - 11:03 Der er 9 kommentarer og
1 løsning

Hvad skal gøres her?

Jeg har følgende metode, der skal tilføje et arrangement til et hashtable. MEN, i månedsfeltet skal der kun accepteres input i form af månedernes navne (strenge), dvs. "januar" - "december" (nedenstående array indeholder dog kun "januar"-"marts" pt.).

Spørgsmålet er nu, hvordan jeg i min if-betingelse tjekker om monthField indeholder en gyldig streng fra arrayet?


      if(e.getSource() == addEvent || e.getSource() == addBtn)
      {
          String[] months = {"januar", "februar", "marts"};
         
          String eventname = eventnameField.getText();
          String title = titleField.getText();
          String artist = artistField.getText();
          String genre = genreField.getText();
          String month = monthField.getText();
          String date = dateField.getText();
          String time = timeField.getText();
          String location = locationField.getText();
          String price = priceField.getText();

          EventComponents evcomp = new EventComponents(eventname, title, artist, genre, month, date, time, location, price);
         
          if (eventname.length()==0 || title.length()==0 || artist.length()==0 || genre.length()==0 || month.length()==0 ||
              date.length()==0 || time.length()==0 || location.length()==0 || price.length()==0 || monthField.getText()!=months())
          { //date.length() >= 7 ||
              //infoLabel.setText("Tjek om alle felter er udfyldt og at datoen er i DD-MM-ÅÅ format!");
              infoLabel.setText("Tjek om alle felter er udfyldt!");
              Toolkit.getDefaultToolkit().beep();
          }
          else
          {
Avatar billede _carsten Nybegynder
22. maj 2006 - 12:40 #1
Jeg ville jo nok lave "monthField" om til JCombobox med de 12 måneder, så slipper du for at checke noget som helst, i et tekstfelt kan man jo skrive både december og desember, jeg ville tro at alt andet ville forvirre brugeren, eks. skal måneden skrives som DEC, dec, december eller DECEMBER
Avatar billede netspinner Nybegynder
22. maj 2006 - 12:47 #2
OK. Har du et hurtigt eksempel på hvordan en JComboBox indlæser alle gyldige måneder fra et array?
Så kunne jeg f.eks. selv udvide det, således at når brugeren vil søge på arrangementer i en given måned, kan denne vælge måneden fra JComboBox'en...
Avatar billede _carsten Nybegynder
22. maj 2006 - 12:47 #3
Ellers er der vel ikke andet at gøre end at rende "months" igennem

boolean ok = false;
String field = monthField.getText();

for(int i = 0; i < months.length; i++){
  if(field.equals(months[i]){
      ok = true;
      break;
  }
}

if(ok){
      if(e.getSource() == addEvent || e.getSource() == addBtn)
      {
          String[] months = {"januar", "februar", "marts"};
Avatar billede _carsten Nybegynder
22. maj 2006 - 12:51 #4
Ja da

public class t extends javax.swing.JFrame {
   
    public t() {
        initComponents();
        String[] months = new String[]{"januar", "februar", "marts"};
        jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(months));
    }
   

    private void initComponents() {
        jComboBox1 = new javax.swing.JComboBox();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        getContentPane().add(jComboBox1, java.awt.BorderLayout.CENTER);

        pack();
    }   

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new t().setVisible(true);
            }
        });
    }

    private javax.swing.JComboBox jComboBox1; 
}
Avatar billede netspinner Nybegynder
22. maj 2006 - 13:16 #5
OK, tak for eksemplet!
Jeg har lige to spørgsmål: 1) Hvis jeg vælger at bruge din første algoritme, hvor man bare gennemløber månederne, hvordan sætter man den så til at acceptere equalsIgnoreCase - bare ved at erstatte if(field.equals(months[i]) med if(field.equals(months[i])?
Og 2) Jeg er i gang med at tilpasse mit program efter JComboBox - det bliver et rent forsøg, ellers må jeg anvende den anden teknik. Hvordan henter jeg teksten ud fra JComboBox contra når jeg hentede fra et JTextField: String month = monthField.getText(); ? strengen skal jo parses videre, for at kunne gemme i mit hashtable etc.
Avatar billede _carsten Nybegynder
22. maj 2006 - 13:20 #6
1. if(field.equalsIgnoreCase( months[i]) )

2. String text = jComboBox1.getSelectedItem().toString();
Avatar billede netspinner Nybegynder
22. maj 2006 - 13:26 #7
Så havde jeg da ret med 1 ;)
Jeg vil fortsætte arbejdet med JComboBox... takker! Jeg skriver igen hvis jeg løber ind i mere... gør jeg sikkert :-O

Smid et svar :)
Avatar billede _carsten Nybegynder
22. maj 2006 - 13:31 #8
Kommer her :)
Avatar billede netspinner Nybegynder
22. maj 2006 - 13:37 #9
Kan da lige sige at det indtil videre virker perfekt med at gemme strengen fra JComboBox... skal nu arbejde med at opdatere måneden også :)
Avatar billede netspinner Nybegynder
22. maj 2006 - 14:02 #10
Suverænt - det virker også med min opdateringsfunktion nu.
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Test Manager – Data Quality & Engineering (Digitalt Fundament)

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Sektionschef for materielstamdata i FMI i Ballerup

IT-Universitetet i København

IT-infrastrukturspecialist