Avatar billede lasse_hyldal Nybegynder
07. maj 2002 - 11:28 Der er 7 kommentarer og
1 løsning

Combo Box

Kan man ikke lave en Bombo Box i AWT, i så fald hvordan?
Hvis ikke, er det muligt at blande AWT med Swing, hvis det kun er Combo Boxen man vil lave i Swing og alle de andre Labels og Textfields i AWT? 
Avatar billede lasse_hyldal Nybegynder
07. maj 2002 - 11:30 #1
Bombo Box = Combo Box
Avatar billede carstenknudsen Nybegynder
07. maj 2002 - 11:33 #2
Du kan sagtens blande awt og swing lige
så tosset du vil. Dog vil jeg anbefale at
du benytter swing komponenter i stedet for
awt komponenter i det du så får mere
homogenitet på forskellige platforme,
din applikation ser mere ens ud. Desuden har
de nyere swing komponenter ofte mere
funktionalitet end de tilsvarende awt komponenter.
Avatar billede lasse_hyldal Nybegynder
07. maj 2002 - 11:37 #3
Hvad gør jeg galt her?

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

public class ComboBoxes extends JFrame
{
    public ComboBoxes()
    {
        super("Departure city");
        setSize(600, 600);
        //setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
        JComboBox departure = new JComboBox();
        FlowLayout flo = new FlowLayout();
        Container pane = getContentPane();
        departure.addItem("Aalborg");
        departure.addItem("Aarhus");
        departure.addItem("Billund");
        departure.addItem("Grenaa");
        departure.addItem("Kastrup");
        pane.setLayout(flo);
    }
}

Main-metoden:

public class Main
{
public static void main(String[] arguments)
    {
        ComboBoxes box = new ComboBoxes();
    }
}
Avatar billede carstenknudsen Nybegynder
07. maj 2002 - 11:43 #4
Du skal huske at add til pane: her er
dit eksempel med smårettelser.
import javax.swing.*;
import java.awt.*;
public class ComboBoxes extends JFrame {
    public ComboBoxes() {
    super("Departure city");
    JComboBox departure = new JComboBox();
    FlowLayout flo = new FlowLayout();
    Container pane = getContentPane();
    departure.addItem("Aalborg");
    departure.addItem("Aarhus");
    departure.addItem("Billund");
    departure.addItem("Grenaa");
    departure.addItem("Kastrup");
    pane.setLayout(flo);
    pane.add( departure );
    pack();
    show();
    }
    public static void main(String[] arguments) {
    ComboBoxes box = new ComboBoxes();
    }
}
Avatar billede lasse_hyldal Nybegynder
07. maj 2002 - 11:53 #5
Det fungerer nu, men hvilken metode skal jeg bruge til at vælge f.eks. Billund i stedet for Aalborg?
Avatar billede carstenknudsen Nybegynder
07. maj 2002 - 11:56 #6
Du klikker på den lille pil tilhøjre i
combobox'en så kommer der en liste med
dine muligheder for valg, i dit tilfælde
fem. På listen klikker du på den du vil
vælge så vises den øverst og listen forsvinder.
Hvis brugeren selv skal kunne indtaste navnet
kalder du blot metoden setEditable(true)
så er det øverste felt et normalt tekstfelt
hvor man kan skrive i.
Avatar billede lasse_hyldal Nybegynder
07. maj 2002 - 12:03 #7
Problemet er bare, at Aalborg bliver ved med at stå der, og altså ikke bliver erstattet af f.eks. Billund
Avatar billede carstenknudsen Nybegynder
07. maj 2002 - 12:07 #8
Det lyder grimt. Har du prøvet at kopiere
min kode præcis som den er? Hvilken
Java SDK har du installeret?
Her hos mig kører det som det skal.
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