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,表示字段中的列数。该数字与字段当前字体提供的度量一起使用,以计算字段的首选宽度。它不限制用户可以输入的字符数。