java - 如何让 JTextArea 粘在窗口上

标签 java swing layout jtextarea layout-manager

你好,当我用鼠标调整它的大小时,我想让这个 TextArea 坚持窗口大小,就像下按钮一样。这是完美无误的代码,请浏览一下。

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.LayoutManager;


import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;


public class Rozklady extends JFrame {

public Rozklady() {
    super();    
}

public void createGUI(){
    setPreferredSize(new Dimension(400,150));
    JPanel jp = new JPanel();
//  jp.setLayout(new BoxLayout(jp, BoxLayout.Y_AXIS));
    jp.setLayout(new GridLayout(0,1));

    JPanel gora = new JPanel();
    JPanel dol = new JPanel();
    pack();
    JTextArea jt1 = new JTextArea("JF1");


    gora.add(jt1);

    jt1.setPreferredSize(new Dimension(getWidth(),getHeight()/2));
    dol.setLayout(new BorderLayout());

    JPanel lewo = new JPanel();
    JPanel prawo = new JPanel();
    JPanel srodek = new JPanel();



    dol.add(lewo, BorderLayout.EAST);
    dol.add(prawo,BorderLayout.WEST);
    dol.add(srodek, BorderLayout.CENTER);


    lewo.setLayout(new GridLayout(2,2));
    prawo.setLayout(new GridLayout(2,2));
    srodek.setLayout(new GridLayout(0,1));

    for(int i  = 0; i < 4; i++){
        lewo.add(new JButton(i+""));
        prawo.add(new JButton(i+""));
        if(i < 3){
            srodek.add(new JTextField("JF"+i));
        }
    }




    jp.add(gora);
    jp.add(dol);
    add(jp);
    setVisible(true);
    pack();
    setDefaultCloseOperation(EXIT_ON_CLOSE);
}





public static void main(String[] args) {
     SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
               new Rozklady().createGUI();
            }
        });

}

}

最佳答案

为你的 gora 面板使用 BorderLayout。将文本区域置于中心:

gora.setLayout(new BorderLayout());
gora.add(jt1, BorderLayout.CENTER);

关于java - 如何让 JTextArea 粘在窗口上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10764798/

相关文章:

java - poi HSSFCell setCellFormula 中的公式有什么问题?

java - Selenium:如何提示用户输入并使用输入值?

java - 推土机目标类中的 Spring Autowiring

java - 在 swing 线程中捕获异常

android - Listview改变键盘打开其他 View 的位置

android - 如何在 Android 中使微调器变灰?

java - 如何使用 Jackson 从 JSON 对象内部的数组中检索值

java - 在暂停()和播放()之后VLCJ无法显示视频

java - 更改框架的内容

android - 如何使线性布局填充相对布局中的剩余空间?