繁体   English   中英

JTextArea 的设置位置不起作用

[英]setting location of JTextArea not working

我不知道如何设置文本区域的位置。 这是我的代码。 不确定什么不起作用,显然 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();
    }
}

跟进最后一条评论,这就是我想要实现的目标

显然 JTextArea 不像设置按钮那样简单。

您试图创建一个带有文本“这是一个按钮”的标签和一个带有文本“我是一个按钮”的按钮

You 按钮也不会显示,因此评论没有意义。

问题是您正在向 JLabel 添加组件。 默认情况下,JLabel 不显示子组件,因为它没有布局管理器。

您将能够通过设置布局管理器将组件添加到标签:

JLabel background = new JLabel(...);
background.setLayout( new FlowLayout() );

阅读关于布局管理器的 Swing 教程中的部分,了解更多基础知识和使用布局管理器的工作示例。 教程代码还将向您展示如何更好地构建您的类,以便您遵循 Swing 指南。

您还可以查看:背景面板以获取可能的替代解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM