Avatar billede chr.kj Nybegynder
17. februar 2009 - 14:53 Der er 7 kommentarer

Tæller i ComboBox.

Hejsa.

Jeg ville høre om det er muligt at lave en tæller som tæller op fra 0 til f.eks. 30 i en combobox.

Jeg havde tænkt på en while løkke som f.eks.

while(int i > 30)
{
i++;
}

men hvor skal denne kode sættes ind? Jeg benytter NetBeans 6.5 og designer min GUI i deres GUI design.

Poå forhånd tak for hjælpen :)
Avatar billede arne_v Ekspert
17. februar 2009 - 15:09 #1
Til inspiration:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class NewDynNum extends JFrame implements ActionListener {
    private JTextField txt;
    private JButton btn;
    private int n;
    public NewDynNum() {
        n = 0;
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().setLayout(new BorderLayout());
        txt = new JTextField();
        txt.setText(Integer.toString(n));
        getContentPane().add(txt, BorderLayout.CENTER);
        btn = new JButton("Count 10 up");
        btn.addActionListener(this);
        getContentPane().add(btn, BorderLayout.SOUTH);
        pack();
    }
    public void incr() {
        n++;
        txt.setText(Integer.toString(n));
    }
    public void actionPerformed(ActionEvent ev) {
        if (ev.getSource() == btn) {
            T t = new T(this);
            t.start();
        }
    }
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                NewDynNum f = new NewDynNum();
                f.setVisible(true);
            }
        });
    }
}

class T extends Thread {
    private NewDynNum dn;
    public T(NewDynNum dn) {
        this.dn = dn;
    }
    public void run() {
        for (int i = 0; i < 10; i++) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    dn.incr();
                }
            });
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
            }
        }
    }
}
Avatar billede chr.kj Nybegynder
18. februar 2009 - 10:29 #2
Hej Arne.

Tak for svaret.

Jeg har kigget på din kode og afprøvet den og kan godt se ideen med den for-løkke, men jeg problemer med at se hvor jeg skal indsætte den i min combobox?
Avatar billede arne_v Ekspert
19. februar 2009 - 01:45 #3
Hvad mener du helt præcist med at tælle op i en combobox ?

Ovenstående viserhvordan man opdaterer en kontrol med bestemte tidsintervaller.

Det kan også bruges på en combobox.

Hvis du bare vil indsætte 30 nummererede værdier i en combobox er det bare at lave et array med 30 elementer og tildele dets elementer i en for løkke og så bruge arrayet i comboboxens constructor.
Avatar billede chr.kj Nybegynder
19. februar 2009 - 08:26 #4
Det jeg mener er, at jeg har et tal som, til at starte med skal indeholde værdierne fra 1 -> 200. For at undgå at skulle skrive alle værdierne manuelt i Netbeans GUI havde jeg en idé om man ikke kunne få en while eller for løkke til at gøre arbejdet for mig hvilket ville være en del nemmere :)

Mit problem består af, at jeg ikke er klar over hvor i Netbeans GUI design jeg skal indsætte denne kode (for-løkken) eller om det overhovedet kan lade sig gøre.
Avatar billede arne_v Ekspert
22. februar 2009 - 03:07 #5
"jeg har et tal som, til at starte med skal indeholde værdierne fra 1 -> 200"

jeg forstår ikke hvad du mener.
Avatar billede chr.kj Nybegynder
16. april 2010 - 08:36 #6
Hej Arne.

Havde helt glemt denne tråd.

Smid lige et svar som tak for hjælpen.
Avatar billede arne_v Ekspert
16. april 2010 - 15:00 #7
ok
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