任何熟悉java Gui - swing包的人......并且知道如何在某种循环中创建多个摆动对象,如“jlabels和jtextfields”,这样你就不必分别对它们进行冗余设置了吗? ... ANYONE ???
例如 - 我必须创建60个Textfields和11个Jlabels等。 我想(如果可能的话)不必像这样单独创建每个
JLabel jlblName = new JLabel("first one");
JLabel jlblName = new JLabel("first two");
JLabel jlblName = new JLabel("first three");
//etc...
如果可能的话,我想找到一种方法来设置边界,并以更短的方式将标签添加到面板。
我尝试过不同的方法来实现这一点 - 使用数组并创建get方法但仍然没有运气.___。
如果你能
,请帮助我下面是我到目前为止所写内容的一个例子......但即使它确实有效,但对于serval原因来说似乎并不实际。 ..我也不确定为什么它不起作用。
public class prospectVer2
{
private static int l = 59; //, t = 20, c=11;
public static String getInfo(int b)
{
int a=b;
String [] lah = new String [prospectVer2.l];
lah [0]= "a";
lah [1]= "b";
lah [2]= "c";
lah [3]= "d";
lah [4]= "e";
lah [5]= "f";
lah [6]= "g";
lah [7]= "e";
lah [8]= "f";
lah [9]= "g";
lah [10]= "h";
lah [11]= "i";
lah [12]= "j";
lah [13]= "k";
lah [14]= "l";
lah [15]= "m";
lah [16]= "n";
lah [17]= "o";
lah [18]= "p";
lah [19]= "q";
lah [21]= "r";
lah [22]= "s";
lah [23]= "t";
lah [24]= "u";
lah [25]= "v";
lah [26]= "w";
lah [27]= "x";
lah [28]= "y";
lah [29]= "z";
lah [30]= "aa";
lah [31]= "bb";
lah [32]= "cc ";
lah [33]= " dd";
lah [34]= " ee";
lah [35]= " ff ";
lah [36]= " gg ";
lah [37]= " hh ";
lah [38]= " ii ";
lah [39]= "jj";
lah [40]= "kk";
lah [41]= "ll";
lah [42]= "mm";
lah [43]= "nn";
lah [44]= "oo";
lah [45]= "pp";
lah [46]= "qq";
lah [47]= "rr";
lah [48]= "ss";
lah [49]= "tt";
lah [50]= "uu";
lah [51]= "vv";
lah [52]= "ww";
lah [53]= "xx";
lah [54]= "yy";
lah [55]= "zz";
lah [55]= "aaa";
lah [56]= "bbb";
lah [57]= "ccc";
lah [58]= "ddd";
lah [59]= "eee";
String infos= lah[a];
return infos;
}
public static void main(String[] args)
{
// Declare variables - arrays
// Create Frame and Panel - set size -
JFrame frame = new JFrame("Prospect Assignment");
frame.setSize(700, 900);
JPanel mypanel = new JPanel();
JLabel[] labels = new JLabel[prospectVer2.l];
// Create labels (60) - for loop -
for (int i=0; i<labels.length; i++)
{
labels[i] = new JLabel(prospectVer2.getInfo(i));
mypanel.add(labels[i]);
labels[i].setBounds(i*10+245,i*10+210,120,20);
}
// extra functions for gui
frame.add(mypanel);
mypanel.setLayout(null);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
BTW我必须使用javas Swing包复制这个站点 https://cunycitytech.askadmissions.net/emtinterestpage.aspx?ip=prospect 谢谢!
答案 0 :(得分:4)
如果您尝试启动代码,问题就会很明显:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 59
at prospectVer2.getInfo(prospectVer2.java:70)
at prospectVer2.main(prospectVer2.java:87)
在您的代码中,private static int l = 59; //, t = 20, c=11;
和l
用于指定长度数组。在java
数组中,从0
索引开始,这意味着您的案例中最后一个可访问的数组索引应为58
,但您尝试lah[59] = "eee";
。这就是您的代码不起作用的原因。
您可以使用以下解决方案之一:
l
:private static int l = 60;
; 59
索引(lah[59] = "eee";
)的访问权限。答案 1 :(得分:3)
回答你的问题
如何创建多个摇摆对象,例如&#34; jlabels和jtextfields&#34;
您可以使用简单的方法,例如:
JLabel getLabel(String labelText) {
JLabel label = new JLabel(labelText);
//do additional needed setting like font, alignment etc.
return label;
}