我写了一个程序,可是不管我怎么调,中间的文本区还是那么小,高手可不可以帮我看下
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;public class FontDemo
{
public static void main(String[] args)
{
FontDemoFrame frame=new FontDemoFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}class FontDemoFrame extends JFrame
{
public FontDemoFrame()
{
setTitle("FontDemo");
setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
Container contentPane=getContentPane();
GridBagLayout layout=new GridBagLayout();
contentPane.setLayout(layout);
ActionListener listener1=new FontAction();
ActionListener listener2=new AreaAction();
JLabel facelabel=new JLabel("Face:");
face=new JComboBox(new String[]{
"Serif","SansSerif","Monospaced","Dialog","DialogInput"
});
face.addActionListener(listener1);
JLabel sizelabel=new JLabel("Size:");
size=new JComboBox(new String[]{
"8","10","12","15","18","24","36","48"
});
size.addActionListener(listener1);
bold=new JCheckBox("Bold");
bold.addActionListener(listener1);
italic=new JCheckBox("Itatic");
italic.addActionListener(listener1);
sample=new JTextArea();
sample.setText("The quick brown fox jumps over the lazy dog");
sample.setEditable(false);
sample.setLineWrap(true);
sample.setBorder(BorderFactory.createEtchedBorder());
JButton replace=new JButton("Replace");
replace.addActionListener(listener2);
from=new JTextField();
JLabel with=new JLabel("With");
to=new JTextField();
GridBagConstraints constraints=new GridBagConstraints();
constraints.fill=GridBagConstraints.NONE;
constraints.anchor=GridBagConstraints.CENTER;
constraints.weightx=0;
constraints.weighty=0;
add(facelabel,constraints,0,0,1,1);
add(sizelabel,constraints,0,1,1,1);
constraints.fill=GridBagConstraints.HORIZONTAL;
constraints.anchor=GridBagConstraints.CENTER;
constraints.weightx=100;
add(face,constraints,1,0,2,1);
add(size,constraints,1,1,2,1);
constraints.fill=GridBagConstraints.NONE;
constraints.weighty=100;
add(bold,constraints,3,0,1,1);
add(italic,constraints,3,1,1,1);
constraints.fill=GridBagConstraints.BOTH;
constraints.anchor=GridBagConstraints.CENTER;
add(sample,constraints,0,2,4,5);
constraints.fill=GridBagConstraints.NONE;
constraints.anchor=GridBagConstraints.CENTER;
add(replace,constraints,0,7,1,1);
constraints.fill=GridBagConstraints.HORIZONTAL;
constraints.anchor=GridBagConstraints.CENTER;
constraints.weightx=100;
add(from,constraints,1,7,1,1);
constraints.fill=GridBagConstraints.NONE;
constraints.anchor=GridBagConstraints.CENTER;
add(with,constraints,2,7,1,1);
constraints.fill=GridBagConstraints.HORIZONTAL;
constraints.anchor=GridBagConstraints.CENTER;
constraints.weightx=100;
add(to,constraints,3,7,1,1);
}
public void add(Component c,GridBagConstraints constraints,int x,int y,int w,int h)
{
constraints.gridx=x;
constraints.gridy=y;
constraints.gridwidth=w;
constraints.gridheight=h;
getContentPane().add(c,constraints);
}
public static final int DEFAULT_WIDTH=300;
public static final int DEFAULT_HEIGHT=400;
private JComboBox face;
private JComboBox size;
private JCheckBox bold;
private JCheckBox italic;
private JTextArea sample;
private JTextField from;
private JTextField to;
private class FontAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String fontFace=(String)face.getSelectedItem();
int fontsize=Integer.parseInt((String)size.getSelectedItem());
int mode=0;
if(bold.isSelected())
mode+=Font.BOLD;
if(italic.isSelected())
mode+=Font.ITALIC;
Font font=new Font(fontFace,mode,fontsize);
sample.setFont(font);
sample.repaint();
}
}
private class AreaAction implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String f=from.getText();
int n=sample.getText().indexOf(f);
if(n>=0&&f.length()>0)
sample.replaceRange(to.getText(),n,n+f.length());
}
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;public class FontDemo
{
public static void main(String[] args)
{
FontDemoFrame frame=new FontDemoFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}class FontDemoFrame extends JFrame
{
public FontDemoFrame()
{
setTitle("FontDemo");
setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
Container contentPane=getContentPane();
GridBagLayout layout=new GridBagLayout();
contentPane.setLayout(layout);
ActionListener listener1=new FontAction();
ActionListener listener2=new AreaAction();
JLabel facelabel=new JLabel("Face:");
face=new JComboBox(new String[]{
"Serif","SansSerif","Monospaced","Dialog","DialogInput"
});
face.addActionListener(listener1);
JLabel sizelabel=new JLabel("Size:");
size=new JComboBox(new String[]{
"8","10","12","15","18","24","36","48"
});
size.addActionListener(listener1);
bold=new JCheckBox("Bold");
bold.addActionListener(listener1);
italic=new JCheckBox("Itatic");
italic.addActionListener(listener1);
sample=new JTextArea();
sample.setText("The quick brown fox jumps over the lazy dog");
sample.setEditable(false);
sample.setLineWrap(true);
sample.setBorder(BorderFactory.createEtchedBorder());
JButton replace=new JButton("Replace");
replace.addActionListener(listener2);
from=new JTextField();
JLabel with=new JLabel("With");
to=new JTextField();
GridBagConstraints constraints=new GridBagConstraints();
constraints.fill=GridBagConstraints.NONE;
constraints.anchor=GridBagConstraints.CENTER;
constraints.weightx=0;
constraints.weighty=0;
add(facelabel,constraints,0,0,1,1);
add(sizelabel,constraints,0,1,1,1);
constraints.fill=GridBagConstraints.HORIZONTAL;
constraints.anchor=GridBagConstraints.CENTER;
constraints.weightx=100;
add(face,constraints,1,0,2,1);
add(size,constraints,1,1,2,1);
constraints.fill=GridBagConstraints.NONE;
constraints.weighty=100;
add(bold,constraints,3,0,1,1);
add(italic,constraints,3,1,1,1);
constraints.fill=GridBagConstraints.BOTH;
constraints.anchor=GridBagConstraints.CENTER;
add(sample,constraints,0,2,4,5);
constraints.fill=GridBagConstraints.NONE;
constraints.anchor=GridBagConstraints.CENTER;
add(replace,constraints,0,7,1,1);
constraints.fill=GridBagConstraints.HORIZONTAL;
constraints.anchor=GridBagConstraints.CENTER;
constraints.weightx=100;
add(from,constraints,1,7,1,1);
constraints.fill=GridBagConstraints.NONE;
constraints.anchor=GridBagConstraints.CENTER;
add(with,constraints,2,7,1,1);
constraints.fill=GridBagConstraints.HORIZONTAL;
constraints.anchor=GridBagConstraints.CENTER;
constraints.weightx=100;
add(to,constraints,3,7,1,1);
}
public void add(Component c,GridBagConstraints constraints,int x,int y,int w,int h)
{
constraints.gridx=x;
constraints.gridy=y;
constraints.gridwidth=w;
constraints.gridheight=h;
getContentPane().add(c,constraints);
}
public static final int DEFAULT_WIDTH=300;
public static final int DEFAULT_HEIGHT=400;
private JComboBox face;
private JComboBox size;
private JCheckBox bold;
private JCheckBox italic;
private JTextArea sample;
private JTextField from;
private JTextField to;
private class FontAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String fontFace=(String)face.getSelectedItem();
int fontsize=Integer.parseInt((String)size.getSelectedItem());
int mode=0;
if(bold.isSelected())
mode+=Font.BOLD;
if(italic.isSelected())
mode+=Font.ITALIC;
Font font=new Font(fontFace,mode,fontsize);
sample.setFont(font);
sample.repaint();
}
}
private class AreaAction implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String f=from.getText();
int n=sample.getText().indexOf(f);
if(n>=0&&f.length()>0)
sample.replaceRange(to.getText(),n,n+f.length());
}
}
}
解决方案 »
- java -cp 与Java -jar 的区别
- 双击Jar文件运行
- 急晕了!兄弟姐妹们快来救命啊!不知道为什么数据库连接数目会持续增加!
- JFileChooser的一个问题
- 关于hashmap得复杂定义,请帮助!谢谢
- 有人上java-cn吗?怎么注册不了了。谁有注册用户,借我下点东西
- java读取sql2k数据时,中文变了乱码?如果恢复?
- 安装ide是,找不到匹配的JVM是怎么回事?
- java中如何4舍5入
- 求教下面的注解用eclipse怎么快速地实现
- 请教:Java应用程序如何发布?那一堆class如何打包为可直接运行的EXE?初学Java,见笑的说
- 如何在方法中修改简单类型,并且能输出参数
只在文本域的布局限制中加上constraints.weighty=3;就可以了.
估计你对weightx和weighty误解了.
weightx指出该组件跨越几行,weighty指出跨越几列.
现在有几个参数要区分,下面是书上的原话:
gridx,guidy/////////////////单元格的起始行列,左上角从0,0开始
gridwidth,gridheight////////单元格的行数和列数
weightx,weighty/////////////单元格放大时的增量
关于gridwidth和weightx的说法与wulemale(wulemale)说的就有点出入了
这是怎么回事呀
在你这个例子中,我觉得用BorderLayout比较好,将文本域放到center,用嵌套Panel进行North的布局