2016-06-15 87 views
-1

我有一个JLabel数组,但是当图像附加到它并添加到我的容器时,它不会出现在JFrame上,与非数组JLabel s不同。当添加到JFrame时,JLabel数组中的图像不会出现

我试图改变它覆盖的图像的不透明设置,将其设置为可见,并更改图像的布局。

我是Stack Overflow的新手,对Swing比较新,所以所有的批评都是值得欢迎的。

import java.awt.Container; 
import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 

public class Connect_Four extends JFrame { 
    private static final long serialVersionUID = 1L; 
    static JLabel[] piecelabel; 
    static int piececounter; 

    public Connect_Four(String title) { 
     piececounter = 0; 

     Container c = getContentPane(); 

     piecelabel = createLabels(); 
     piecelabel[piececounter].setIcon(new ImageIcon("F:/redpiece.jpg")); 
     piecelabel[piececounter].setBounds(0, (750 - (counter[0] * 100)), 135, 100); 
     c.add(piecelabel[piececounter]); 
    } 

    public JLabel[] createLabels() { 
     JLabel[] labels = new JLabel[42]; //used for connect 4 pieces 
     for (int i = 0; i < 42; i++) { 
      labels[i] = new JLabel(); 
     } 
     return labels; 
    } 
} 
+0

这是alll ??????你有一个主要的?你看到东西吗?我没有看到任何东西 – gpasch

+0

你的USB连接了吗?它在'F:'端口上吗?同时避免使用'null'布局!请参阅:[为什么它不喜欢使用空布局](http://stackoverflow.com/questions/6592468/why-is-it-frowned-upon-to-use-a-null-layout-in-swing)和[空布局是邪恶的](http://www.leepoint.net/GUI/layouts/nulllayout.html) – Frakcool

+2

顺便说一下,如果你将它放置一次或42次,它将工作相同,请张贴[mcve]包括相关的代码,但仍然显示您的问题,也因为你是新的堆栈溢出采取[旅游](http://stackoverflow.com/tour)和[如何问](http://stackoverflow.com /帮助/如何对问) – Frakcool

回答

1

我不确定你的主要方法。但下面的代码适合我。你能检查并告诉我有没有什么区别?

import java.awt.Container; 
import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 

public class Connect_Four extends JFrame { 

    static JLabel[] piecelabel; 
    static int piececounter; 
    private static final long serialVersionUID = 1L; 

    public Connect_Four(String title) { 

     piececounter = 0; 

     Container c = getContentPane(); 

     JLabel[] piecelabel = createLabels(); 
     piecelabel[piececounter].setIcon(
       new ImageIcon("C:/sunshine.png")); 
     piecelabel[piececounter].setBounds(0, 0, 135, 100); 
     c.add(piecelabel[piececounter]); 
    } 

    public JLabel[] createLabels() { 
     JLabel[] labels = new JLabel[42]; //used for connect 4 pieces 
     for (int i = 0; i < 42; i++) { 
      labels[i] = new JLabel(); 
     } 
     return labels; 
    } 

    public static void main(String[] args) { 
     Connect_Four c = new Connect_Four("Example"); 
     c.setVisible(true); 
     c.pack(); 
    } 
} 
0

您是否设置后让呼叫看得到重绘方法()它