如何在 Java 中创建要打印到 JFrame 的 JLabels 数组

Posted

技术标签:

【中文标题】如何在 Java 中创建要打印到 JFrame 的 JLabels 数组【英文标题】:How to create an array of JLabels in Java to be printed to a JFrame 【发布时间】:2011-02-12 08:01:59 【问题描述】:

我正在尝试制作一个标签数组。 每个标签都有一个不同的值,这些值来自一个函数。 我不知道要使用的标签的确切数量。 我的意思是可以打印任意数量的值。 请帮我做这件事。

【问题讨论】:

【参考方案1】:
import java.awt.*;
public class frame4array extends Frame

Checkbox c1[]; /* Same as checkbox and TextField now you add an array of Label in 
Frame and Applet also and if you want to create an array of swing components now write 
same as JTextField jt[];*/
TextField t1[];
int i;
frame4array(String p)

super(p);
c1=new Checkbox[2];
t1=new TextField[2];
for(i=0;i<2;i++)

t1[0]=new TextField();
t1[0].setBounds(200, 50, 150, 30);
t1[1]=new TextField();
t1[1].setBounds(200, 80, 150, 30);
c1[0]=new Checkbox("Singing");
c1[0].setBackground(Color.red);
c1[0].setBounds(430,200,120,40);
c1[1]=new Checkbox("Cricket",true);

for(i=0;i<2;i++)

add(t1[i]);
add(c1[i]);

setFont(new Font("Arial",Font.ITALIC,40));

public static void main(String s[])

frame4array f1=new frame4array("hello");
f1.setSize(600,500);
f1.setVisible(true);



/* run and enjoy */

【讨论】:

【参考方案2】:

如果可能,不要使用单独的JLabels,而是使用JList,它会在必要时负责布局和滚动。

Java-Tutorial - How to us a List:

(来源:sun.com)

【讨论】:

【参考方案3】:

实际上,您可以创建一个包含任何 Swing 组件的数组,因为每个 Swing 组件基本上都是复合数据类型。 试试这个:

javax.swing.JTextField[] array = new javax.swing.JTextField[number_of_elements];

【讨论】:

【参考方案4】:

只需一个方法返回一个数组或一些 JLabels 集合即可 并将它们全部添加到您的 JComponent(例如 JPanel)中

class MyPanel extends JPanel

    public MyPanel()
        super();
        showGUI();
    

    private JLabel[] createLabels()
        JLabel[] labels=new JLabel[10]
        for (int i=0;i<10;i++)
            labels[i]=new JLabel("message" + i);
        
        return labels;
    

    private void showGUI()
        JLabel[] labels=createLabels();
        for (int i=0;i<labels.length();i++)
            this.add(labels[i]);
        
    

【讨论】:

【参考方案5】:

你在开玩笑吗? 好吧,如果您是认真的,请先了解一些 Java API,例如 JLabel、JPanel 和一些语言元素。

然后你就可以做类似的事情(我确定我的代码不会编译)

public static JPanel getLabels(int count) 
    JPanel panel = new JPanel(new FlowLayout());
    for(int i =0; i<count; i++) 
        panel.add(new JLabel(theFunctionThatCannotBeNamedHere(i)));
    
    return panel;

注意theFunctionThatCannotBeNamedHere是你说的函数。

【讨论】:

以上是关于如何在 Java 中创建要打印到 JFrame 的 JLabels 数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP .Net (Aspx) 中创建要从 Javascript 访问的 Web 服务方法?

在 Qt 设计器中创建要提升的自定义小部件

如何在Java JFrame中创建一堆可单击的面板

在JFrame中显示数组

Java----如何在窗口中创建菜单

如何在 Java 中将多个可拖动图像添加到 JFrame?