我照书上写了下面的程序,为什么要将窗口最大化后才能显示窗体里的内容,我是新手,大虾帮忙解释下,谢谢

packagepFrame;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclass... package pFrame;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class SwingText extends JFrame{
JTextField jtf;
JTextArea jta;
JButton jbtn_sub;
JButton jbtn_ref;
public SwingText(){
super("Swing包的两个文本框程序");
setBounds(100,100,400,300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c=getContentPane();
c.setLayout(new FlowLayout());

jtf=new JTextField(15);
c.add(jtf);

jbtn_sub=new JButton("确认");
jbtn_sub.addActionListener(new Listener_jbtn_sub());
c.add(jbtn_sub);

jbtn_ref=new JButton("取消");
jbtn_ref.addActionListener(new Listener_jbtn_ref());
c.add(jbtn_ref);

jta=new JTextArea(11,30);
c.add(jta);

// setSize(400,300);
// show();
}
private class Listener_jbtn_sub implements ActionListener{
public void actionPerformed(ActionEvent e){
String s="";
if(jta.getLineCount()>10)
JOptionPane.showMessageDialog(null, "对不起,已超过十行!");
s=jtf.getText();
if(s.equals(""))
JOptionPane.showMessageDialog(null, "内容不能为空!");
else{
jta.append(s+"\n");
jtf.setText("");
}
}
}
private class Listener_jbtn_ref implements ActionListener{
public void actionPerformed(ActionEvent e){
jta.setText("");
}
}
public static void main(String[] args){
SwingText st=new SwingText();
}
}
setBounds(100,100,400,300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

这段放在setSize()前就没问题,我想知道为什么放在最前面会出现问题
展开
 我来答
fuhaiwei
2012-10-09 · TA获得超过3409个赞
知道大有可为答主
回答量:974
采纳率:75%
帮助的人:1391万
展开全部
应该把setVisible放到最后才对。

我认为这牵扯到刷新问题,你先setVisible,后add,会先显示一个没有内容的窗体,等到刷新时才会显示出内容。

什么时候刷新呢,可能有最小化,最大化,改变大小,updateUI,setVisible等操作。
蛋哥小短片
2012-10-09 · TA获得超过1239个赞
知道小有建树答主
回答量:366
采纳率:71%
帮助的人:147万
展开全部
把setSize()的注释去掉。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式