2015-05-26 2 views
-1

Это код, который я сделал для отображения случайных карт. Выбор случайной карточки работает нормально, но изображения не отображаются.GUI изображение изображения

Почему это происходит?

public class RandomeCard { 

public static void main(String[] args) { 

    int CardNumber = 54; 
    int i; 
    int Num; 
    int FirstNum=0; 
    int SecNum=0; 
    int ThirdNum=0; 
    int cnt = 1; 
    int numbersNeeded=0; 
    int max = 0; 

    for(i=1; i<=CardNumber; i++){ 
     Num = (int)(Math.random()*54)+1; 

    if(i==1){ 
     FirstNum = Num; 
     System.out.println("Fist card number "+FirstNum); 
    } 

    if(i==2){ 
     SecNum = Num; 
     if(FirstNum == SecNum){ 
      i++; 
    } else { 
      System.out.println("Second card number "+SecNum); 
      } 
    } 
    if(i==3){ 
     ThirdNum = Num; 
     if(FirstNum == SecNum){ 
      i++; 
    } else { 
     System.out.println("Third card number "+ThirdNum); 
    } 
    } 

} 

    JFrame frame = new JFrame("Random Card Display"); 
    frame.setSize(300, 200); 

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setLocationRelativeTo(null); 
frame.setLayout(new GridLayout(1,3)); 
frame.setVisible(true); 
ImageIcon icon = new ImageIcon("card/.png"); 
JLabel label = new JLabel(icon); 
frame.add(label); 
frame.add(new jlbl(new icon1("card/"+FirstNum+".png"))); 
frame.add(new jlbl(new icon1("card/"+SecNum+".png"))); 
frame.add(new jlbl(new icon1("card/"+ThirdNum+".png"))); 
} 

    private static class icon1 { 

    public icon1(String string) { 
     ImageIcon icon1 = new ImageIcon(); 
    } 
} 

private static class jlbl extends PopupMenu { 

    public jlbl(icon1 icon1) { 
     JLabel jlbl = new JLabel(); 
    } 
} 

} 
+4

Почему вы смесительных командной строки и код GUI? Где хранятся изображения с отношением к источнику? Почему вы расширяете «PopupMenu»? Почему бы просто не добавить 'JLabel'' в' JFrame' напрямую? – MadProgrammer

ответ

3

Ни один из ваших классов не связывается вместе. icon1 загружает IconImage, но ничего не делает с ним, вы создаете в PopupMenu в JLabel, но не добавляйте его к чему-либо ...

Просто добавьте JLabel к JFrame

frame.add(new JLabel(new ImageIcon("card/"+FirstNum+".png"))); 

Это предполагает что изображения хранятся в каталоге с именем card, который находится в том же месте, что и программа.

Возможно, вы найдете ImageIO.read лучший выбор для загрузки изображений, по крайней мере, он выбрасывает IOException, когда все идет не так.

Взгляните на How to Use Labels и Reading/Loading an Image для получения более подробной информации

+0

Thankyou. Я попробовал ваш код, но его не работает, неподвижные изображения не отображаются – user1641688

+0

Как я уже сказал * «Предполагается, что изображения хранятся в каталоге, называемом картой, которая находится в том же месте, что и программа» * я знаю, где хранятся ваши изображения, это лучшее, что я могу сделать – MadProgrammer

Смежные вопросы