JTextArea不能正常显示
我想做一个汇率计算程序,我用了一个JTextArea并添加到滚动面板上之后添加到窗体上,用的是网格包布局,可是JTextArea在刚显出来时只有一行,可我设的是5行,我加了一个pack方法之后能正常显示出5行来,可是整个窗体又变小了,请各位大哥帮帮忙,问题解决,立即给分.小弟先谢了.
附源码:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.*;
class HuiluCalculator extends JFrame implements ActionListener
{
JTextArea jieguoJTextArea;
JComboBox bizhong;
JTextField rmb;
JTextField huilu;
JButton jishuan;
JLabel lblrmb;
JLabel lblhuilu;
JLabel lblbizhong;
JLabel lbljieguo;
Container con;
GridBagLayout gb;
GridBagConstraints gbc;
public HuiluCalculator()
{
setTitle("汇率计算器");
setBounds(400,300,300,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(false);
gb=new GridBagLayout();
gbc=new GridBagConstraints();
gbc.fill=GridBagConstraints.BOTH;
jieguoJTextArea=new JTextArea("人民币\t兑换金额\t币种",5,20);
rmb=new JTextField(10);
huilu=new JTextField(10);
jishuan=new JButton("计算");
lblrmb=new JLabel("人民币:");
lblhuilu=new JLabel("兑换汇率:");
lblbizhong=new JLabel("外币种类:");
lbljieguo=new JLabel("人民币及兑换外币金额:");
String bz[]={"美元","日元","英磅","法币"};
bizhong=new JComboBox(bz);
con=getContentPane();
con.setLayout(gb);
addComponent(lblrmb,0,0,1,1);
addComponent(rmb,0,1,1,2);
addComponent(jishuan,0,3,1,1);
addComponent(lblhuilu,1,0,1,1);
addComponent(huilu,1,1,1,2);
addComponent(lblbizhong,2,0,1,1);
addComponent(bizhong,2,1,1,2);
addComponent(lbljieguo,3,0,1,2);
addComponent(jieguoJTextArea,4,0,20,4);
jishuan.addActionListener(this);
}
public void addComponent(Component c,int row,int col,int nrow,int ncol)
{
gbc.gridx=col;
gbc.gridy=row;
gbc.gridwidth=ncol;
gbc.gridheight=nrow;
gb.setConstraints(c,gbc);
con.add(c);
}
public void actionPerformed(ActionEvent e)
{
if(jieguoJTextArea.getLineCount()>1)
{
jieguoJTextArea.setText("人民币\t兑换金额\t币种");
}
Float x,y;
x=new Float(rmb.getText());
y=new Float(huilu.getText());
String s=new String();
String s1=new DecimalFormat("0.00").format(x.floatValue()*y.floatValue());
s="\n" + rmb.getText()+ "\t" + s1 + "\t" + bizhong.getSelectedItem().toString();
jieguoJTextArea.append(s);
}
public static void main(String args[])
{
new HuiluCalculator().show();
}
}
附源码:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.*;
class HuiluCalculator extends JFrame implements ActionListener
{
JTextArea jieguoJTextArea;
JComboBox bizhong;
JTextField rmb;
JTextField huilu;
JButton jishuan;
JLabel lblrmb;
JLabel lblhuilu;
JLabel lblbizhong;
JLabel lbljieguo;
Container con;
GridBagLayout gb;
GridBagConstraints gbc;
public HuiluCalculator()
{
setTitle("汇率计算器");
setBounds(400,300,300,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(false);
gb=new GridBagLayout();
gbc=new GridBagConstraints();
gbc.fill=GridBagConstraints.BOTH;
jieguoJTextArea=new JTextArea("人民币\t兑换金额\t币种",5,20);
rmb=new JTextField(10);
huilu=new JTextField(10);
jishuan=new JButton("计算");
lblrmb=new JLabel("人民币:");
lblhuilu=new JLabel("兑换汇率:");
lblbizhong=new JLabel("外币种类:");
lbljieguo=new JLabel("人民币及兑换外币金额:");
String bz[]={"美元","日元","英磅","法币"};
bizhong=new JComboBox(bz);
con=getContentPane();
con.setLayout(gb);
addComponent(lblrmb,0,0,1,1);
addComponent(rmb,0,1,1,2);
addComponent(jishuan,0,3,1,1);
addComponent(lblhuilu,1,0,1,1);
addComponent(huilu,1,1,1,2);
addComponent(lblbizhong,2,0,1,1);
addComponent(bizhong,2,1,1,2);
addComponent(lbljieguo,3,0,1,2);
addComponent(jieguoJTextArea,4,0,20,4);
jishuan.addActionListener(this);
}
public void addComponent(Component c,int row,int col,int nrow,int ncol)
{
gbc.gridx=col;
gbc.gridy=row;
gbc.gridwidth=ncol;
gbc.gridheight=nrow;
gb.setConstraints(c,gbc);
con.add(c);
}
public void actionPerformed(ActionEvent e)
{
if(jieguoJTextArea.getLineCount()>1)
{
jieguoJTextArea.setText("人民币\t兑换金额\t币种");
}
Float x,y;
x=new Float(rmb.getText());
y=new Float(huilu.getText());
String s=new String();
String s1=new DecimalFormat("0.00").format(x.floatValue()*y.floatValue());
s="\n" + rmb.getText()+ "\t" + s1 + "\t" + bizhong.getSelectedItem().toString();
jieguoJTextArea.append(s);
}
public static void main(String args[])
{
new HuiluCalculator().show();
}
}
...全文
相关推荐
如何在整个数组列表的jtextarea中显示结果
也许您应该使用size.append(d +“:” + len +“ \ n”);
JAVA初级编码——继承JDialog, 利用JTextArea显示文档中的内容
JAVA初级编码,生成JDialog动态窗口,并在窗口中使用 JTextArea显示.txt文件中的内容。
重定向log4j日志到jtextarea
重定向log4j日志到jtextarea
Java Swing JTextArea文本区域的实现示例
主要介绍了Java Swing JTextArea文本区域的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
JTextArea 实现行号
JTextArea 实现行号,继承AbstractBorder,jTextArea_1.setBorder(lb);即可添加到JTextArea


非技术区

