java中的JTextField在GridLayout中怎么设置大小?

import java.awt.*;import javax.swing.*;public class L5_13_L5_14用户登录界面 extends JFrame{JLabel[] biaoqian = new JLabel[10];JPanel[] jp = new JPanel[10];JButton[] button = new JButton[10];JCheckBox[] fxk = new JCheckBox[10];JTextField wbk;JPasswordField mmk;public static void main(String[] args){L5_13_L5_14用户登录界面 l = new L5_13_L5_14用户登录界面();}L5_13_L5_14用户登录界面(){biaoqian[0] = new JLabel(new ImageIcon("image/qqq.png"));biaoqian[0].setPreferredSize(new Dimension(0, 50));//这个是设置高度的大小的。jp[0] = new JPanel(new GridLayout(3, 3));jp[1] = new JPanel();biaoqian[1] = new JLabel("用户名", JLabel.CENTER);biaoqian[2] = new JLabel("密 码", JLabel.CENTER);wbk = new JTextField(10);mmk = new JPasswordField();button[0] = new JButton(new ImageIcon("image/baidu.png"));button[0] = new JButton("按钮");biaoqian[3] = new JLabel("忘记密码");biaoqian[3].setFont(new Font("宋体", Font.PLAIN, 16));biaoqian[3].setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));fxk[0] = new JCheckBox("隐身登录");fxk[1] = new JCheckBox("记住梦想");biaoqian[4] = new JLabel("<html><a href = 'www.qq.com'>申请密码保护</a>");biaoqian[4].setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));button[1] = new JButton("登录");button[2] = new JButton("取消");button[3] = new JButton("向导");jp[0].add(biaoqian[1]); jp[0].add(wbk); jp[0].add(button[0]);jp[0].add(biaoqian[2]); jp[0].add(mmk); jp[0].add(biaoqian[3]);jp[0].add(fxk[0]); jp[0].add(fxk[1]); jp[0].add(biaoqian[4]);jp[1].add(button[1]); jp[1].add(button[2]); jp[1].add(button[3]); jp[1].setPreferredSize(new Dimension(0, 50));this.add(biaoqian[0], BorderLayout.NORTH);this.add(jp[0]);this.add(jp[1], BorderLayout.SOUTH);this.setSize(320, 255);this.setLocation(800, 400);//this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}}这个是代码,刚才发的图片是运行图,我想问问大神们怎么把文本框(输入账号和密码的)变得矮一点,我上网搜了好多方法都不管用,可能是不适合我的这种情况。我的文本框是放在GridLayout里的。GrilLayout的格式为GridLayout(3 , 3);我知道可以用GridLayout(3, 3, 15, 15);来调整各个组件之间的间距。但是我想实现的是单独的把JTextField文本框变小。大神们看看能不能帮我解决一下。谢谢了!

性别单选按键组的问题,你性别单选按钮组是用的JPanel装的两个JRadioButton吧,把这个JPanel的Layout设为 new FlowLayout(FlowLayout.CENTER, 0, 0)就OK了,见下面代码:

Java代码
package org.zergle.test.swing;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.border.LineBorder;

public class ReaderAddIFrame extends JFrame {
private JLabel lblName = new JLabel("姓名");
private JTextField txtName = new JTextField();
private JLabel lblSex = new JLabel("性别");
private JRadioButton radMale = new JRadioButton("男");
private JRadioButton radFemale = new JRadioButton("女");
private JLabel lblAge = new JLabel("年龄");
private JTextField txtAge = new JTextField();
private JLabel lblCareer = new JLabel("职业");
private JTextField txtCareer = new JTextField();

private JPanel pnl1 = new JPanel();
private JPanel pnl1_1 = new JPanel(new GridLayout(2, 4));
private JPanel pnlSexGroup = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));

public ReaderAddIFrame() {
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.pnlSexGroup.add(this.radMale);
this.pnlSexGroup.add(this.radFemale);
this.pnl1_1.add(this.lblName);
this.pnl1_1.add(this.txtName);
this.pnl1_1.add(this.lblSex);
this.pnl1_1.add(this.pnlSexGroup);
this.pnl1_1.add(this.lblAge);
this.pnl1_1.add(this.txtAge);
this.pnl1_1.add(this.lblCareer);
this.pnl1_1.add(this.txtCareer);
this.pnl1.add(this.pnl1_1);
this.add(this.pnl1, BorderLayout.CENTER);
this.setSize(600, 400);
this.setVisible(true);
}

public static void main(String[] args) {
new ReaderAddIFrame();
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-06-27
可以通过如下方式进行设置
field1.setPreferredSize(new Dimension(width, height));

java中的JTextField在GridLayout中怎么设置大小?
把文本框和密码框,在放入一个JPanel里,然后把这个JPanel放入到网格布局里即可 代码如下 \/\/核心代码第一部分, 设置文本框,密码框长度wbk = new JTextField(8);\/\/在这个窗口大小里,设置长度为8,比较合适mmk = new JPasswordField(8);\/\/密码框也设置长度为8\/\/核心代码第二部分, 把文本框,密码框等...

如何设置java控件的位置和大小
把java控件所在的容器(比如:JFrame,JPanel)的布局设为空布局。(比如:jp.setLayout(null);然后用java控件的setBounds函数设置java控件的位置和大小。(比如:JTextField jtf=new JTextField(5); jtf.setBounds(100,100,30,20);\/\/100,100是在容器中的相对位置坐标x和坐标y 30,20是Java控件的大小,30...

Java Swing初学,JFrame中的JLabel等元素紧靠边界,这个距离怎么写?
先要新建一个JPanel主面板,然后设置边距 jPanel.setBorder(new EmptyBorder(10, 10, 10, 10)); \/\/ 设置边距 具体实例 import java.awt.GridLayout;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JPasswordField;imp...

java 计算器 显示位数如何控制
this.setLocation(100, 50); \/\/ 设置窗体显示在桌面上的位置 this.setSize(300, 200); \/\/ 设置窗体大小 this.setResizable(false); \/\/ 窗体大小固定 } \/\/ 程序入口 public static void main(String[] args) throws Exception { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()...

Java 有关GUI中JPanel的换行问题
参考代码 import java.awt.*;import javax.swing.*;public class TestDemo extends JFrame{public TestDemo() {JPanel jp1 = new JPanel(new GridLayout(3, 2,20,10));\/\/3行2列 水平间距20 垂直间距10\/\/第一行JLabel jl1 = new JLabel("文字:");jl1.setHorizontalAlignment(SwingConstants...

...的 界面,包含 0-9 个 数字 , A-F个字母,采用 GridLayout布局...
如果要用GBK编码,就把字符修改成汉字,比如平方根,乘方JPanel jp0;\/\/存放显示的文本框JPanel jp1;\/\/存放0~9 A~FJPanel jp2;\/\/存放运算符\/\/jp0jp0 = new JPanel();JTextField jtf = new JTextField(16);jtf.setText("0");jtf.setHorizontalAlignment(JTextField....

为何无法设置文本框大小?
两个方面的问题:1.JTextField 是单行的,所以你第二个文本框应该使用JTextArea。2.你使用的是BorderLayout布局,TextArea的大小不由你控制,而是布满整个分配的空间,JTextArea的大小是跟随它的父窗体的大小变化的 补充:1.换一种布局方式;2.使用控件的setSize方法 ...

java swing 的几个问题,求教
constraints.gridwidth = width; \/\/组件宽度 constraints.gridheight = height; \/\/组件高度 constraints.weightx = x; \/\/组件在水平方向的拉伸能力 constraints.weighty = y; \/\/组件在垂直方向的拉伸能力 layout.setConstraints(componentToAdd, constraints); \/\/设置目标组件的约束 container.add(componentToAdd); \/...

Java关于JPanel的问题
public static void main(final String []args){ JFrame frame=new JFrame("JFrame程序");frame.setSize(600,450);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Container contentPanel=frame.getContentPane();contentPanel.setLayout(new BorderLayout());\/\/设置布局方式 JPanelDemo1 jpd =...

java窗口设计中, 如何设置多行输入框
\/\/设置布局方式, 网格布局 3行2列 c.setLayout(new GridLayout(3, 2));jtf = new JTextField();jpf = new JPasswordField();JButton b = new JButton("显示");\/\/ 添加按钮监听 b.addActionListener(this);jl = new JLabel();c.add(new JLabel("用户名:"));c.add(jtf);c.add(...

相似回答