/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
program vil ikke vise JLabels
Fra : Kim Schulz


Dato : 10-01-02 12:10

hejsa jeg har nedestående programstump som af en eller anden grund ikke
vil vise alle de JLabels som bliver genereret i løkkerne. Nogen der kan
fortælle mig hvorfor? (jeg har billedfilerne liggende der hvor class
filen ligger, så det er ikke det. Der kommer ingen fejlmeddelelse men
den viser kun den grønne baggrund.

Nogen der kan hjælpe?

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

public class GUI_board extends JPanel {
public ImageIcon black;
public ImageIcon white;
public JLabel label, l1, l2, l3;
private int x;
public GUI_board(){
//   super ();
   setSize (400,400);
   setBackground(Color.green);
   MoveListener listener = new MoveListener();
   black = new ImageIcon ("tileblack.gif");
   white = new ImageIcon ("tilewhite.gif");
   label = new JLabel ("blah:");
   l1 = new JLabel("", black,SwingConstants.CENTER);
   l2 = new JLabel("", white,SwingConstants.CENTER);
   Container board = new JPanel();
   board.setLayout (new GridLayout(8,8));
   JLabel[][] l = new JLabel[8][8];
   JLabel jl;
   int setblack = 1;
   for (int i=0; i<8; i++) {
    if (setblack==1){
      setblack=0;
      System.out.println("debug1");
    }else{
      setblack=1;
    }
    for (int j=0; j<8; j++) {
       System.out.println("debug2");
      if (setblack==1){
       setblack=0;
      }else{
       setblack=1;
      }
      if (setblack==1){
         System.out.println("debug3");
       jl = new JLabel("", black,SwingConstants.CENTER);
//       jl.setBackground(Color.blue);
       board.add(jl);
       jl.addMouseListener (listener);
       l[i][j] = jl;
      }else{
         System.out.println("debug4");
       jl = new JLabel("", white,SwingConstants.CENTER);
       board.add(jl);
       jl.addMouseListener (listener);
       l[i][j] = jl;
      }
    }
   }
   
   
}

private class MoveListener extends MouseAdapter {
   public void mouseClicked(MouseEvent event){
   }
   public void mouseEntered(MouseEvent event){
   }
   public void mouseExited(MouseEvent event){
   }
}
public static void
   main(String[] args)
{
   JFrame f = new JFrame();
   GUI_board gui_board = new GUI_board();
   f.getContentPane().add(gui_board);
   f.add((new JLabel("muue")));
   f.show();
//   f.pack();
}

}

--
[ http://www.schulz.dk - En nørds bekendelser! ]
[ Seneste artikel: ]
[ Network neighbourhood - nu til linux vha. et simpelt script ]

 
 
Kim Schulz (10-01-2002)
Kommentar
Fra : Kim Schulz


Dato : 10-01-02 12:52

On Thu, 10 Jan 2002 12:10:12 +0100
Kim Schulz <kim@schulz.dk> wrote:
> hejsa jeg har nedestående programstump som af en eller anden grund
> ikke vil vise alle de JLabels som bliver genereret i løkkerne. Nogen
> der kan fortælle mig hvorfor? (jeg har billedfilerne liggende der hvor
> class filen ligger, så det er ikke det. Der kommer ingen
> fejlmeddelelse men den viser kun den grønne baggrund.
>
> Nogen der kan hjælpe?
Efter en del rykken rundt, så fik jeg dem til at blive vist. Nu vil jeg
så gerne erstatte mine ikoner black og white med en gennemsigtig gif
kaldet empty og så farve baggrunden af lablen i stedet. Men ligegyldigt
hvad jeg gør, så sætter den ikke baggrundsfarven korrekt.

jeg gør det via
jl = new JLabel(empty);
jl.setBackground(Color.black);

men den forbliver bare grå.
Nogen der har en ide?

(j2sdk 1.4.0 beta3)

MVH
Kim Schulz


--
[ http://www.schulz.dk - En nørds bekendelser! ]
[ Seneste artikel: ]
[ Network neighbourhood - nu til linux vha. et simpelt script ]

Lars Dam (10-01-2002)
Kommentar
Fra : Lars Dam


Dato : 10-01-02 14:17

On Thu, 10 Jan 2002 12:51:48 +0100, Kim Schulz <kim@schulz.dk> wrote:

>så gerne erstatte mine ikoner black og white med en gennemsigtig gif
>kaldet empty og så farve baggrunden af lablen i stedet. Men ligegyldigt
>hvad jeg gør, så sætter den ikke baggrundsfarven korrekt.
>
>jeg gør det via
>jl = new JLabel(empty);
>jl.setBackground(Color.black);
>
>men den forbliver bare grå.
>Nogen der har en ide?
>

Et hurtigt gæt: prøv setOpaque()

>MVH
>Kim Schulz


vh. ld
---
"Time is the fire in which we burn"

Kim Schulz (10-01-2002)
Kommentar
Fra : Kim Schulz


Dato : 10-01-02 14:59

On Thu, 10 Jan 2002 14:17:19 +0100
[snip]
> Et hurtigt gæt: prøv setOpaque()

yes det virkede sq!
tak for hjælpen.

Et lidt andet problem men alligevel lidt det samme.
jeg har nedestående kode som jeg gerne vil kalde fra en anden klasse så
jeg kan tilføje det til en jframe der. Dette virker også meget godt, men
kun baggrunden vises....ikke alle der ellers vises. (der er for øvrigt
nogen der kan sige mig hvad i denne kode der er "deprecated" for det
advarer den mig om). Koden jeg vil sætte min GUI_board ind i er
allernederst.

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

public class GUI_board extends JPanel {
public ImageIcon black;
public ImageIcon white;
public ImageIcon empty;
public JLabel label, l1, l2, l3;
private int x;
public GUI_board(){
   setSize (440,440);
   setBackground(Color.green);
   MoveListener listener = new MoveListener();
   
   black = new ImageIcon ("bk.gif");
   white = new ImageIcon ("tilewhite.gif");
   empty = new ImageIcon ("empty.gif");
   Container board = new JPanel();
   board.setLayout (new GridLayout(8,8));
   JLabel[][] l = new JLabel[8][8];
   JLabel jl;
   int setblack = 1;
   for (int i=0; i<8; i++) {
    if (setblack==1){
      setblack=0;
    }else{
      setblack=1;
    }
    for (int j=0; j<8; j++) {
      if (setblack==1){
       setblack=0;
      }else{
       setblack=1;
      }
      if (setblack==1){
       jl = new JLabel(black,SwingConstants.CENTER);
       jl.setOpaque(true);
       jl.setBackground(Color.black);
       board.add(jl);
       jl.addMouseListener (listener);
       l[i][j] = jl;
      }else{
   
       jl = new JLabel(empty,SwingConstants.CENTER);
       jl.setOpaque(true);
       jl.setBackground(Color.white);
       board.add(jl);
       jl.addMouseListener (listener);
       l[i][j] = jl;
      }
    }
   }
   
   
}

private class MoveListener extends MouseAdapter {
   public void mouseClicked(MouseEvent event){
   }
   public void mouseEntered(MouseEvent event){
   }
   public void mouseExited(MouseEvent event){
   }
}
public static void
   main(String[] args)
{
   GUI_board gui_board = new GUI_board();
   gui_board.show();

}

}

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


public class GUI_skak extends JFrame {
public GUI_skak(){
   super("Super chess");
   Container pane = getContentPane();
//   GUI_board board = new GUI_board();
   JLabel status = new JLabel("Status");
   pane.setLayout (new BorderLayout());
   pane.add(status, BorderLayout.SOUTH);
   pane.add((new GUI_board()), BorderLayout.CENTER);
   pack();
}
public static void main(String[] args){
   GUI_skak frame = new GUI_skak();
frame.setSize(500,600);
   frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
   frame.show();
//   frame.pack();


   
}
}


--
[ http://www.schulz.dk - En nørds bekendelser! ]
[ Seneste artikel: ]
[ Network neighbourhood - nu til linux vha. et simpelt script ]

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408526
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste