在JFrame里根据一个值count,new出count个JTextField和JTextArea,用jtextf和jtexta两个数组存放count个组件,在for循环里new出组件,为什么运行后JTextField和JTextArea画不出来?求解~~public class MassageMa extends JFrame {
public MassageMa(int count) {
this.setBounds(300, 100, 800, 600);
this.setLayout(null);
this.setVisible(true);
JTextField[] jtextf = new JTextField[count];
JTextArea[] jtexta = new JTextArea[count];
for(int i=1;i<=count;i++){
if(i%2!=0){
jtextf[i-1] = new JTextField("嘿嘿");
jtextf[i-1].setBounds(50, 60+70*(i/2), 70, 30);
jtextf[i-1].setEditable(false);
this.add(jtextf[i-1]);
jtexta[i-1] = new JTextArea();
jtexta[i-1].setBounds(145, 60+70*(i/2), 170, 30);
this.add(jtexta[i-1]);
}
if(i%2==0){
jtextf[i-1] = new JTextField("嘿嘿");
jtextf[i-1].setBounds(385, 60+70*(i/2-1), 70, 30);
jtextf[i-1].setEditable(false);
this.add(jtextf[i-1]);
jtexta[i-1] = new JTextArea();
jtexta[i-1].setBounds(480, 60+70*(i/2-1), 170, 30);
this.add(jtexta[i-1]);
}
} }}
public MassageMa(int count) {
this.setBounds(300, 100, 800, 600);
this.setLayout(null);
this.setVisible(true);
JTextField[] jtextf = new JTextField[count];
JTextArea[] jtexta = new JTextArea[count];
for(int i=1;i<=count;i++){
if(i%2!=0){
jtextf[i-1] = new JTextField("嘿嘿");
jtextf[i-1].setBounds(50, 60+70*(i/2), 70, 30);
jtextf[i-1].setEditable(false);
this.add(jtextf[i-1]);
jtexta[i-1] = new JTextArea();
jtexta[i-1].setBounds(145, 60+70*(i/2), 170, 30);
this.add(jtexta[i-1]);
}
if(i%2==0){
jtextf[i-1] = new JTextField("嘿嘿");
jtextf[i-1].setBounds(385, 60+70*(i/2-1), 70, 30);
jtextf[i-1].setEditable(false);
this.add(jtextf[i-1]);
jtexta[i-1] = new JTextArea();
jtexta[i-1].setBounds(480, 60+70*(i/2-1), 170, 30);
this.add(jtexta[i-1]);
}
} }}
解决方案 »
- 多线程访问静态变量 只获得值 不做改变变量操作 是否需要同步
- 求助--JMenuItem如何调用别的窗口
- 再问eclipse编写junit的问题?
- java实现读取HTML网页问题
- 问个很菜的问题,请高手指点一下
- 检查某个路径是否存在,如果不存在就创建相关的文件夹,并返回true。这个怎么实现?
- J2ee讲师开过来
- 哪里有WinRunner下载?
- 一个有点弱的问题:jdbc中一个Connection只能有一个Statement?一个ResultSet还是说:
- 为什么装不了Jbuilder 4企业版呀??
- java 小计算器问题 报错NullPointerException
- 求教:Java中这条正则表达式是什么意思?
new MassageMa(10);
}
没发现什么问题,楼主是因为没加main方法吗?
public class MessageMa extends JFrame {
public MessageMa(int count) {
this.setBounds(300, 100, 800, 600);
this.setLayout(null);
this.setTitle("HaHa"); JTextField[] jtextf = new JTextField[count];
JTextArea[] jtexta = new JTextArea[count]; for (int i = 0; i < count; i++) {
if (i % 2 == 0) {
jtextf[i] = new JTextField("嘿嘿");
jtextf[i].setBounds(50, 60 + 70 * ((i + 1) / 2), 70, 30);
jtextf[i].setEditable(false);
this.add(jtextf[i]); jtexta[i] = new JTextArea();
jtexta[i].setBounds(145, 60 + 70 * ((i + 1) / 2), 170, 30);
this.add(jtexta[i]);
} else {
jtextf[i] = new JTextField("嘿嘿");
jtextf[i].setBounds(385, 60 + 70 * ((i + 1) / 2 - 1), 70, 30);
jtextf[i].setEditable(false);
this.add(jtextf[i]); jtexta[i - 1] = new JTextArea();
jtexta[i - 1].setBounds(480, 60 + 70 * ((i + 1) / 2 - 1), 170,
30);
this.add(jtexta[i - 1]);
}
} this.setVisible(true);
} public static void main(String[] args) {
new MessageMa(10);
}
}