Avatar billede smonsted Nybegynder
15. august 2003 - 09:44 Der er 2 kommentarer og
1 løsning

Problemer med JTextFields og JLabels

Det JTextField der hedder navne[] (der er foreløbig kun et element i Arrayen) bliver kun vist i et kort øjeblik inden det forsvinder igen. De andre JTextFields (den der hedder midtfelter[]) bliver vist helt fint...
Jeg kører med sdk1.4.1_01.



import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.util.GregorianCalendar;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class VagtplanPanel extends MitPanel {
    private JPanel venstre, midt, hoejre, navnepanel;
    private JPanel[][] felter;
    private JTextField [][] midtfelter;
    private JTextField [] navne;
    private VagtplanController vagtplanController;
    VagtplanPanel(Vindue v, VagtplanController vpc, GregorianCalendar dato){
        super(v);
        setLayout(null);
        setBounds(0,0,1000,673);
        vagtplanController = vpc;
        setBackground(Color.blue);
        vagtplanController.setVagtplan(dato);
        Vagtplan vagtplanen = vagtplanController.getVagtplan(0);
       
        venstre = new JPanel();
        venstre.setBackground(Color.red);
        venstre.setBounds(0,0,45,730);
        venstre.setLayout(null);
        add(venstre,0);
       
        hoejre = new JPanel();
        hoejre.setBackground(Color.orange);
        hoejre.setBounds(895,0,116,730);
        hoejre.setLayout(null);
        add(hoejre);
       
        //---------MIDTPANEL--------------
        midt = new JPanel();
        midt.setBackground(Color.white);
        midt.setBounds(110,0,785,730);
        midt.setLayout(null);

        add(midt,0);
        navnepanel = new JPanel();
            navnepanel.setBounds(35,0,75,730);
            navnepanel.setBackground(Color.green);
            navnepanel.setLayout(null);
            add(navnepanel,0);
           
            Ansat tempansattilnavn;
       

        if(vagtplanen!=null){
                       
            midtfelter= new JTextField[vagtplanen.ansatte.size()*2][vagtplanen.antalDage];
            felter = new JPanel[vagtplanen.ansatte.size()][vagtplanen.antalDage];
            navne = new JTextField[vagtplanen.ansatte.size()];
           
            for(int i=0;i<vagtplanen.ansatte.size();i++){
               
               
                navne[i] = new JTextField(10);
                navne[i].setBounds(0,200,50,50);
                navne[i].setText("Tekst");
                navnepanel.add(navne[i],0);
           
               
                for(int k=0;k<vagtplanen.antalDage;k++){
                    felter[i][k] = new JPanel();
                    felter[i][k].setLayout(null);
                    felter[i][k].setBounds(k*25,i*33,25,32);
                    midt.add(felter[i][k],0);
                    midtfelter[i*2][k] = new JTextField();
                    midtfelter[i*2][k].setBackground(Color.orange);
                    midtfelter[i*2][k].setBounds(0,0,25,16);
                    felter[i][k].add(midtfelter[i*2][k],0);
                    midtfelter[i*2+1][k] = new JTextField();
                    midtfelter[i*2+1][k].setBackground(Color.orange);
                    midtfelter[i*2+1][k].setBounds(0,16,25,16);
                    felter[i][k].add(midtfelter[i*2+1][k],0);
                }
            }
       

        }

           
        else {
            System.out.println("Før start af vagtplan");
        }
       
    }

}
Avatar billede _carsten Nybegynder
15. august 2003 - 10:47 #1
Du lægger panelerne oven på hinanden

'midt' ligger oven på 'navnepanel'

add(midt,0);
add(navnepanel,0);
Avatar billede _carsten Nybegynder
15. august 2003 - 10:49 #2
Du kan hurtigt checke ved at ændre layout i VagtplanPanel til

setLayout(new FlowLayout);
Avatar billede _carsten Nybegynder
15. august 2003 - 11:03 #3
Jeg tror din plan er at bruge GridLayout, du laver i hvertfald
et import statement (import java.awt.GridLayout;)

men du bruger:  setLayout(null);

istedet for:  setLayout(new GridLayout(x,x));
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