我自定义一个面板,使用网格布局,一共是四行一列,第一行是一个jlable(放图片),第二行是一个
jtextfield(显示从数据库里调用的数据),第三行是一个jtextarea(显示从数据库里调用的数据)
,第四行是一个jbutton。jtextarea布局是使用全填充的(fill=both)。问题来了,每次itextarea
显示数据时总会超出它原本所规定好的大小,把第二行和第四行往上顶和往下压了,这个怎么也解决不了。在线等大牛回复!
package cn.vr.swing.Jpanel;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
/*
- author:黄龙
- time:2016.7.29 */ import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Image; import java.awt.Insets; import java.awt.Point; import java.awt.Rectangle; import java.awt.TextArea; import java.util.List;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.SwingUtilities;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.plaf.ButtonUI;
import javax.swing.plaf.TextUI;
import javax.swing.plaf.basic.BasicButtonUI;
import javax.swing.plaf.basic.BasicTextPaneUI;
import javax.swing.plaf.basic.BasicViewportUI;
import javax.swing.text.BadLocationException;
import javax.swing.text.EditorKit;
import javax.swing.text.JTextComponent;
import javax.swing.text.View;
import javax.swing.text.Position.Bias;
import org.apache.logging.log4j.core.config.DefaultConfigurationMonitor;
import cn.vr.other.Datasearch;
import cn.vr.po.Information;
import cn.vr.swing.JButton.MyimgJbutton;
import cn.vr.swing.JLable.MyimgLable;
public class Imagepanel extends JPanel{
private MyimgLable jLabel;
private MyimgJbutton jButton;
private JTextField field;
private JTextArea area;
private Information information;
Datasearch data;
List paths;
private JLabel label;
JScrollPane jScrollPa;
public Imagepanel(Information information) {
super();
// TODO Auto-generated constructor stub
data=new Datasearch();
this.information=information;
paths=data.Dataimages(information.getInfoId());
setLayout(new GridBagLayout());
GridBagConstraints constraints=new GridBagConstraints();
jLabel=new MyimgLable(paths.get(0));
System.out.println("width="+jLabel.getWidth());
jButton=new MyimgJbutton(System.getProperty("user.dir") +"/pic/圆角矩形.png");
jButton.setUI(new BasicButtonUI());
//jButton.setText("开始游戏");
field=new JTextField();
area=new JTextArea();
field.setText(information.getName());
area.setText(information.getIntroduce());
field.setForeground(Color.WHITE);
area.setForeground(Color.WHITE);
Font font1=new Font("宋体", Font.BOLD , 25);
Font font2=new Font("TimesRoman", Font.PLAIN, 15);
field.setFont(font1);
area.setFont(font2);
field.setEditable(false);
area.setEditable(false);
field.setPreferredSize(getMaximumSize());
area.setLineWrap(true);
//area.setRows(getHeight());
//第一行
constraints.gridy=0;
constraints.gridx=0;
constraints.gridheight=1;
constraints.weightx=100;
constraints.weighty=50;
constraints.fill=constraints.BOTH;
add(jLabel, constraints);
//第二行
constraints.gridy=1;
constraints.gridx=0;
constraints.gridheight=1;
constraints.weightx=100;
constraints.weighty=10;
constraints.fill=constraints.HORIZONTAL;
add(field, constraints);
field.setOpaque(false);
//第三行
constraints.gridy=2;
constraints.gridx=0;
constraints.weighty=20;
constraints.fill=constraints.BOTH;
//constraints.anchor=constraints.WEST;
area.setOpaque(false);
add(area, constraints);
//第四行
constraints.gridy=3;
constraints.gridx=0;
constraints.weighty=20;
constraints.fill=constraints.NONE;
constraints.anchor=constraints.EAST;
constraints.ipadx=80;
constraints.ipady=25;
add(jButton, constraints);
setOpaque(false);
}