JTextfield没有像我想要的那样显示

我是 Java 新手,找不到简单的解决方案。在下图中,您可以看到我的问题所在。我想编写一个程序,在那里我可以创建播放列表并保护它们,但我已经陷入困境,因为JTextfield它太小了。

import javax.swing.JFrame;

public class Main {
    
    public static void main(String args[]) {
        JFrame w = new Layout();
        w.setVisible(true);
        w.setSize(600, 600);
        w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        w.setLocationRelativeTo(null);
        w.setResizable(true);
    }
}
import java.awt.*;
import javax.swing.*;
import javax.swing.border.LineBorder;

public class Layout extends JFrame{

        JTextField input;
    
    Layout(){   
        
        //title and layout type
        super("ThePlay");
        setLayout(new FlowLayout());
        
        JButton s;  //search button
        JButton h;  //home button
        JButton mp; //my playlist button
        JButton cp; //create playlist button
        JButton fs; //favorite songs button

        //frame constructor
        Container mainContainer = this.getContentPane();
        mainContainer.setLayout(new BorderLayout(8,6));
        mainContainer.setBackground(Color.GRAY);
        this.getRootPane().setBorder(BorderFactory.createMatteBorder(4, 4, 4, 4, Color.GRAY));
        
        //input constructor
        input = new JTextField();
        input.setBounds(300, 50, 150, 25);
        
        //up frame
        JPanel topPanel = new JPanel();
        topPanel.setBorder(new LineBorder(Color.BLACK, 3));
        topPanel.setBackground(Color.GRAY);
        topPanel.setLayout(new FlowLayout(6));
        
        //bot frame
        JPanel downPanel = new JPanel();
        downPanel.setBorder(new LineBorder(Color.BLACK, 3));
        downPanel.setBackground(Color.GRAY);
        downPanel.setLayout(new FlowLayout(5));
        
        //create buttons
        s = new JButton("Search");
        h = new JButton("Home");
        mp = new JButton("My Playlists");
        cp = new JButton("Create Playlist");
        fs = new JButton("Favorite Songs");
        
        
        //add buttons to the frame
        mainContainer.add(topPanel,BorderLayout.NORTH);     //top frame location
        mainContainer.add(downPanel,BorderLayout.CENTER);   //bottom frame location
        topPanel.add(input);
        topPanel.add(s);
        topPanel.add(h);
        topPanel.add(mp);
        topPanel.add(cp);
        topPanel.add(fs);   
    }
}

回答

你可以JTextField用这种方式给a 大小:

input = new JTextField(20);

从文档:

传递给 JTextField 构造函数的整数参数,在示例中为 20,表示字段中的列数。该数字与字段当前字体提供的度量一起使用,以计算字段的首选宽度。它不限制用户可以输入的字符数。


以上是JTextfield没有像我想要的那样显示的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>