JAVATextField不在JLabel下
注意:我的英语不是最好的,所以请不要介意有太多语法错误
嘿,这里是Java初学者,不管怎样,我正在测试我计划编写的程序的一个小型“beta”版本,所以我制作了一个文本字段,它不会放在我制作的JLabel下,我尝试使用BorderLayout。页面结束时将其放在底部,但它不会放在底部。代码如下:
package test;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TextTest {
private static TextField field;
private static void createGUI() {
Font a = new Font(null, Font.BOLD, 0);
Font size = a.deriveFont(20f);
JLabel test = new JLabel("");
test.setPreferredSize(new Dimension(200,200));
test.setText("<html> Welcome to the EMOJI Translator! Type the <br> Emoji in the Text Area And hit Enter! and it will say What the emoji means! <html>");
test.setFont(size);
field = new TextField(2);
field.setSize(new Dimension(200,200));
field.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String test = field.getText();
String search1 = ":D";
if(test.equals(search1)) {
System.out.println("This is an Happy Smiley.");
}
}});
JFrame b = new JFrame("TEST");
b.setLocationRelativeTo(null);
b.setPreferredSize(new Dimension(350,350));
b.setLayout(new FlowLayout());
b.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
b.getContentPane().add(field, BorderLayout.PAGE_END);
b.getContentPane().add(test, BorderLayout.CENTER);
b.pack();
b.setVisible(true);
}
public static void main(String[] args) {
createGUI();
}
}
下面是一个链接,指向它在我的电脑中如何结束的屏幕截图: http://imgur.com/y988zUx
如果你知道有什么问题,请回答这个问题
# 1 楼答案
您正试图将
BorderLayout
的属性用于带有FlowLayout
的gui生成。在Java中,不能混合使用不同的布局管理器,这样会忽略布局属性您应该将布局管理器设置为
BorderLayout
,以便它接受您的属性: