【发布时间】:2011-02-12 08:01:59
【问题描述】:
我正在尝试制作一个标签数组。 每个标签都有一个不同的值,这些值来自一个函数。 我不知道要使用的标签的确切数量。 我的意思是可以打印任意数量的值。 请帮我做这件事。
【问题讨论】:
标签: java arrays swing jframe jlabel
我正在尝试制作一个标签数组。 每个标签都有一个不同的值,这些值来自一个函数。 我不知道要使用的标签的确切数量。 我的意思是可以打印任意数量的值。 请帮我做这件事。
【问题讨论】:
标签: java arrays swing jframe jlabel
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 */
【讨论】:
【讨论】:
实际上,您可以创建一个包含任何 Swing 组件的数组,因为每个 Swing 组件基本上都是复合数据类型。 试试这个:
javax.swing.JTextField[] array = new javax.swing.JTextField[number_of_elements];
【讨论】:
只需一个方法返回一个数组或一些 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]);
}
}
}
【讨论】:
你在开玩笑吗? 好吧,如果您是认真的,请先了解一些 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是你说的函数。
【讨论】: