Java JTextArea的设置位置不工作
我不知道如何设置文本区域的位置。这是我的密码。不确定什么不起作用,显然JTextArea不像按钮那样设置位置那么简单Java JTextArea的设置位置不工作,java,swing,layout-manager,jtextarea,Java,Swing,Layout Manager,Jtextarea,我不知道如何设置文本区域的位置。这是我的密码。不确定什么不起作用,显然JTextArea不像按钮那样设置位置那么简单 import javax.swing.*; import java.awt.*; import java.awt.event.*; class BackgroundImageJFrame extends JFrame { JButton b1; JLabel l1; public BackgroundImageJFrame() {
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class BackgroundImageJFrame extends JFrame {
JButton b1;
JLabel l1;
public BackgroundImageJFrame() {
setTitle("Background Color for JFrame");
setSize(1000, 1000);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
/*One way-----------------*/
setLayout(new BorderLayout());
JLabel background = new JLabel(new ImageIcon("background-landing.png"));
add(background);
background.setLayout(new FlowLayout());
l1 = new JLabel("Here is a button");
b1 = new JButton("I am a button");
JTextArea t1 = new JTextArea("enter username", 10, 20);
t1.setLocation(30, 30);
background.add(l1);
background.add(b1);
background.add(t1);
}
public static void main(String args[]) {
new BackgroundImageJFrame();
}
}
显然,JTextArea并不像设置按钮那样简单
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class BackgroundImageJFrame extends JFrame {
JButton b1;
JLabel l1;
public BackgroundImageJFrame() {
setTitle("Background Color for JFrame");
setSize(1000, 1000);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
/*One way-----------------*/
setLayout(new BorderLayout());
JLabel background = new JLabel(new ImageIcon("background-landing.png"));
add(background);
background.setLayout(new FlowLayout());
l1 = new JLabel("Here is a button");
b1 = new JButton("I am a button");
JTextArea t1 = new JTextArea("enter username", 10, 20);
t1.setLocation(30, 30);
background.add(l1);
background.add(b1);
background.add(t1);
}
public static void main(String args[]) {
new BackgroundImageJFrame();
}
}
您试图创建一个带有文本“此处是一个按钮”的标签和一个带有文本“我是一个按钮”的按钮
您的按钮也不会显示,因此评论没有意义
问题是您正在向JLabel添加组件。默认情况下,JLabel不显示子组件,因为它没有布局管理器
通过设置布局管理器,可以将组件添加到标签:
JLabel background = new JLabel(...);
background.setLayout( new FlowLayout() );
有关使用布局管理器的更多基础知识和工作示例,请阅读上的Swing教程部分。教程代码还将向您展示如何更好地构造类,以便您遵循Swing指南
您还可以查看:以获得一个可能的替代解决方案。您还将LayoutManager与绝对布局混合使用,请参阅以了解为什么应避免使用绝对布局。尽量只使用LayoutManager。还要了解为什么要使用JTextArea输入名称?JTextArea用于显示多行文本。JTextField用于显示单行文本。很高兴它有帮助。不要忘记通过点击复选标记(答案旁边)来“接受”答案,这样人们就知道问题已经解决了。这适用于您的所有问题,因为您尚未接受19个问题的任何答案。