编程语言
首页 > 编程语言> > java – JTextarea不使用miglayout垂直增长

java – JTextarea不使用miglayout垂直增长

作者:互联网

这是使用miglayout进行摇摆的简单记事本的代码.我使用span和grow来填充水平空间但填充和增长不能作为行约束.为什么?
我希望textarea能够填充所有可用空间,包括最小和最大尺寸,但这种情况并没有发生.以下是代码:

import javax.swing.*;
import net.miginfocom.swing.MigLayout;
import java.awt.*;
import java.awt.event.*;
public class Notepad{
JFrame jf;
JMenuBar jmbar;
JMenu jm1,jm2;
JMenuItem jmnew,jmopen,jmsave,jmexit;
JMenuItem jmselect,jmpaste,jmcopy,jmcut;
Notepad(){
    jf=new JFrame("Notepad");
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jf.setLayout(new MigLayout("debug,fill","","[push,grow]"));

    /*Toolkit tk = Toolkit.getDefaultToolkit();  
    int xSize = ((int) tk.getScreenSize().getWidth());  
    int ySize = ((int) tk.getScreenSize().getHeight());  
    jf.setSize(xSize,ySize);  */
    jf.setExtendedState(Frame.MAXIMIZED_BOTH);

    createTextArea();
    createMenu();
    //JTextArea txt=new JTextArea("", 0,0,);
    jf.setMinimumSize(new Dimension(600,400));
    jf.setVisible(true);
}
void createMenu(){
    jmbar=new JMenuBar();
    jm1=new JMenu("File");
    jmnew=new JMenuItem("New");
    jmopen=new JMenuItem("Open");
    jmsave=new JMenuItem("Save");
    jmexit=new JMenuItem("Exit");
    jmexit.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent ae){
            System.exit(0);
        }
    });
    jm1.add(jmnew);
    jm1.add(jmopen);
    jm1.add(jmsave);
    jm1.addSeparator();
    jm1.add(jmexit);
    jmbar.add(jm1);


    jm2=new JMenu("Edit");
    jmcut=new JMenuItem("Cut");
    jmcopy=new JMenuItem("Copy");
    jmpaste=new JMenuItem("Paste");
    jmselect=new JMenuItem("Select All");

    jm2.add(jmcut);
    jm2.add(jmcopy);
    jm2.add(jmpaste);
    jm2.add(jmselect);
    jmbar.add(jm2);
    jf.setJMenuBar(jmbar);

}
void createTextArea(){
    JTextArea textArea = new JTextArea("", 10,40);
    JScrollPane textScroll = new JScrollPane(textArea,    JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
            JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

    textArea.setFont(new Font("Century Gothic", Font.BOLD, 12));
    jf.add(textScroll,"grow,span,wrap");
}
public static void main(String s[]){
    SwingUtilities.invokeLater(new Runnable(){
        public void run(){
            new Notepad();
        }
    });
}
}

解决方法:

它确实应该是,我没有看到任何竞争组件.

无论如何,jf.add(textScroll,“w 100%,h 100%,span,wrap”);虽然你可能需要修剪一些像素以防止剪裁框架装饰(即jf.add(textScroll,“w 100%-10,h 100%-10,span,wrap”),但我可能会工作不要相信需要修剪.

标签:java,textarea,swing,miglayout,notepad-2
来源: https://codeday.me/bug/20190629/1329614.html