JTextArea位置,setBounds不起作用?

2023-12-07

我想要一个JTextArea在某个位置上。我尝试了几件事,比如使用不同的LayoutManagers, no LayoutManager无论如何,setLayout(null)等等。无论我做什么,似乎setBounds(), setLocation() and setSize()不在这里工作,但我读到它并且它说它应该工作。那么我做错了什么?

The JTextArea总是太高,如果我更改参数,位置不会改变setBounds().

public class textarea extends JPanel {

    public static void main(String[] args){
        JFrame frame = new JFrame("text area");
        textarea content = new textarea();
        frame.setContentPane(content);
        frame.setLocation(120,70);
        frame.pack();
        frame.setVisible(true);
        frame.setSize(700,500);     
    }

    JPanel PanelForText;

    public textarea(){
        setBackground(Color.LIGHT_GRAY);
        setLayout(new FlowLayout(FlowLayout.CENTER,50,50));

        txtArea txt = new txtArea();

        PanelForText = new JPanel();
        PanelForText.setPreferredSize(new Dimension(500,300));
        PanelForText.setBorder(BorderFactory.createEtchedBorder());
        PanelForText.add(txt);

        add(PanelForText);
    }
}


public class txtArea extends JPanel {

    boolean textAreaCreated = false;

    public txtArea(){
        setBackground(Color.WHITE);
        setPreferredSize(new Dimension(496, 290));
    }

    public void paintComponent(Graphics g){
        super.paintComponent(g);
        g.setColor(Color.GRAY);
        g.fillRect(50, 25, 400, 245);
        if (!textAreaCreated)
            createTextArea();
    }

    public void createTextArea() {  
        JTextArea Text = new JTextArea();
        Text.setBounds(500,300,300,300);
        Text.setOpaque(false);
        Text.setWrapStyleWord(true);
        Text.setLineWrap(true); 
        Text.setBorder(BorderFactory.createLineBorder(Color.RED));
        add(Text);
        textAreaCreated = true;
    }
}

Here is what I want it to look like: enter image description here

And here is what it currently looks like: enter image description here

我做了一些他们使用的教程JTextField被添加到JPanels,但我想知道我是否可以使用JTextField or JTextArea无需先将其添加到面板即可获取更多文本!

就像我说的,我正在查找“如何设置JTextArea位置”,它说使用setBounds()。显然这是不正确的..所以我再次想知道的是如何做得更好。另外:我确实读了很多关于LayoutManagers,但对我来说尝试使用它比仅仅阅读它更有帮助......

我尝试了行和列,但它并没有改变这样的事实:JTextArea位置不正确。

我所做的是(在 Create TextArea 方法中):

public void createTextArea() {  
    JTextArea Text = new JTextArea(5,1);
    Text.setOpaque(false);
    Text.setWrapStyleWord(true);
    Text.setLineWrap(true); 
    Text.setBorder(BorderFactory.createLineBorder(Color.RED));
    add(Text);
    textAreaCreated = true;
}

您可以通过这样做来实现中心嵌套的外观,使用 GridBagLayout 来中心嵌套您的组件。您可以使用 EmptyBorder 来实现某些框架 JPanel 的宽度。你应该never从 PaintComponent 方法中添加组件。

例如:

import java.awt.*;
import javax.swing.*;
import javax.swing.border.Border;

@SuppressWarnings("serial")
public class TestTextArea2 extends JPanel {

   private static final Color BG = Color.LIGHT_GRAY;
   private static final int ROWS = 14;
   private static final int COLS = 34;
   private JTextArea textArea = new JTextArea(ROWS, COLS);

   public TestTextArea2(int heightGap, int sideGap) {
      setBorder(BorderFactory.createEmptyBorder(heightGap, sideGap, heightGap, sideGap));

      textArea.setBackground(Color.LIGHT_GRAY);
      JScrollPane scrollPane = new JScrollPane(textArea);

      JPanel txtAreaPanel = new JPanel(); 
      int ebGap = 40;
      txtAreaPanel.setBackground(Color.white);
      txtAreaPanel.setBorder(BorderFactory.createEmptyBorder(ebGap, ebGap, ebGap, ebGap));
      txtAreaPanel.setLayout(new GridBagLayout());
      txtAreaPanel.add(scrollPane);

      JPanel myPanel2 = new JPanel();
      Border outerBorder = BorderFactory.createEtchedBorder();
      int heightGap2 = 5;
      int sideGap2 = 5;
      Border innerBorder = BorderFactory.createEmptyBorder(heightGap2, sideGap2, heightGap2, sideGap2);
      myPanel2.setBorder(BorderFactory.createCompoundBorder(outerBorder, innerBorder));

      myPanel2.setLayout(new GridBagLayout());
      myPanel2.add(txtAreaPanel);

      setBackground(BG);
      setLayout(new GridBagLayout());
      add(myPanel2);
   }


   private static void createAndShowGui() {
      JFrame frame = new JFrame("TestTextArea2");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.getContentPane().add(new TestTextArea2(100, 100));
      frame.pack();
      frame.setLocationRelativeTo(null);
      frame.setVisible(true);
   }

   public static void main(String[] args) {
      SwingUtilities.invokeLater(new Runnable() {
         public void run() {
            createAndShowGui();
         }
      });
   }
}

请注意,没有一个setSize(...) or setPreferredSize(...).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JTextArea位置,setBounds不起作用? 的相关文章

  • 来自行号的方法名称

    给定特定类源代码 Java C 的行号 是否有一种简单的方法来获取它所属的方法的名称 如果它落入其中 大概使用抽象语法树 这对于将 checkstyle 的输出限制为仅触及的方法很有用 我假设您必须使用抽象语法树来执行 Line gt Me
  • 从 Android 函数更新 Textview

    有人可以告诉我如何从函数更新 Android Textview 控件吗 我在互联网上进行了深入搜索 看到很多人都问同样的问题 我测试了线程但无法工作 有人有一个简单的工作示例吗 例如 调用一个函数 在循环中运行多次 并且该函数在 TextV
  • java 拖放

    我尝试熟悉java中的拖放 但我发现的所有教程都是 让我生气 我想要的只是从 JList 包含在名为 UserPanel 的自制 JPanel 中 拖动 PublicUserLabel 并将其放入从 JTabbedPanel 继承的自制类中
  • java中高效的输入流到字符串方法

    因此 我在 Java 中的 诚然非常简单 应用程序上运行探查器 令我惊讶的是 仅次于需要在时间上发出 HTTP 请求的方法的是我的方法 inputStreamToString方法 目前它的定义如下 public static String
  • 使用 Spring MVC 在 jar 文件中显示 jsp 页面

    我正在使用 Spring MVC 3 2 2 在 java 中开发一个 Web 应用程序 我在从 jar 文件中加载 jsp 页面时遇到问题 Spring MVC Web应用程序具有以下结构 META INF WEB INF spring
  • Jenkins 未显示 Maven 编译器错误

    在 Jenkins 中构建多模块 maven 3 项目时 如果出现构建错误 我们会收到一条神秘消息 表明 Maven 编译器插件失败 这在上周才刚刚开始发生 INFO BUILD FAILURE INFO INFO Total time 1
  • 清空变量不会使方法引用无效[重复]

    这个问题在这里已经有答案了 为什么代码不抛出NullPointerException当我使用与变量绑定的方法引用时dog我后来分配了null to 我正在使用 Java 8 import java util function Functio
  • Spring 从 JBoss 上下文加载 PropertySourcesPlaceholderConfigurer

    我有一个使用 PropertySourcesPlaceholderConfigurer 的 spring 3 1 应用程序加载设置 我想管理测试和生产环境 只需从服务器上下文加载设置覆盖本地文件属性中指定的设置 下一个示例在 Tomcat
  • 使用正则表达式验证电子邮件的最大长度

    我找到了用于电子邮件验证的正则表达式 a z0 9 a z0 9 a z0 9 a z0 9 a z 2 4 我希望电子邮件的最大长度为 20 个字符 因此我将其更改为 a z0 9 a z0 9 a z0 9 a z0 9 a z 2 4
  • 递归取消 allOf CompletableFuture

    如果我有 CompletableFuture
  • 我的 Kafka 流应用程序刚刚退出,代码为 0,什么也不做

    为了尝试 Kafka 流 我这样做了 public static void main String args final StreamsBuilder builder new StreamsBuilder final Properties
  • java彩色滚动条搜索结果

    我将如何在 Java 中自定义滚动条 以便我可以进行像 chrome 一样的搜索 也就是说在结果所在的位置放置彩色条纹 我不想要一个库 因为我更喜欢自己编写代码 另外 我不想失去我拥有的 L F 欢迎举例 实际上 它将查看一个大的文本文件或
  • React Native v0.71.8 React-native-vector-icons 你看不到的图标

    我在用react native版本v0 71 8 我安装了react native vector icons库 但图标未显示 似乎链接在最新版本的 React Native 中不再起作用 所以我按照说明进行操作 但它不再编译 出现以下错误
  • Java 8:如何创建毫秒、微秒或纳秒的 DateTimeFormatter?

    我需要创建格式化程序来解析具有可选的毫秒 微米或纳秒分数的时间戳 例如 对于我的需求 我看到以下机会 DateTimeFormatter formatter new DateTimeFormatterBuilder append DateT
  • 在 Kotlin 中声明静态属性?

    My Java code public class Common public static ModelPengguna currentModelPengguna public class Common companion object v
  • 如何使用 AffineTransform.quadrantRotate 旋转位图?

    我想旋转一个bitmap关于它的中心点 然后将其绘制成更大的图形上下文 位图是40x40 pixels 图形上下文是500x500 pixels 这就是我正在做的 BufferedImage bi new BufferedImage 500
  • 如何在一次操作中使用 Thymeleaf 检查 null 和空条件?

    有什么方法可以检查 Thymeleaf 中的 null 和empty 条件吗 方法一 1 variable1 variable2 variable3 2 variable null 3 variable 如果我们结合两个条件 例如 vari
  • log4j.properties 在 Wildfly 上无法正常工作

    我的类路径中有一个 log4j properties 文件 它位于 APP XX jar log4j properties 位置 我注意到在ear文件中我还可以在lib文件夹中找到log4j 1 2 17 jar 但无论我在 log4j p
  • 在 Spring MVC 中将请求写入文件

    我希望能够将整个请求写入 Spring MVC 控制器中的文件 我已尝试以下操作 但即使我使用大量参数发出 POST 请求 文件也始终为空 RequestMapping method RequestMethod POST value pay
  • 难以理解 通配符

    我有一个非常基本的问题 下面的代码无法编译 假设 Apple Extends Fruit List

随机推荐

  • 使用 OpenDaylight 入门原型不起作用

    尝试跟随开放日光开发者教程获得在控制器上运行的初始 hello world 应用程序 但是运行命令 mvn archetype generate DarchetypeGroupId org opendaylight controller D
  • Dictionary 和 ConcurrentDictionary 之间修改集合时的不同行为

    使用如下所示的正常字典代码 我得到的异常是 集合已修改 枚举操作可能无法执行 Dictionary
  • 比较目标 C 中的时间和日期

    例如 如何在目标 C 中进行比较 以查看某个时间和日期期间是否与 plist 中已有的另一个时间和日期期间重叠 这最常用于预订 预订应用程序 以查看该特定时间段是否已被占用等 尝试这个来比较 NSDateFormatter dateForm
  • 在“unload”方法中关闭连接

    我继承了一个 Web 框架 以前的开发人员在页面生命周期的 init unload 方法中打开和关闭了他的数据库连接 本质上构造函数是这样的 简化以演示要点 public class BasePage protected DBConnect
  • C++货币输出

    我现在正在学习 C 课程 并已完成期末作业 然而 有一件事困扰着我 虽然我有正确的输出来测试特定的输出 basepay应该133 20它显示为133 2 有没有办法让它显示额外的 0 而不是将其保留 有人知道这是否可能以及如何做到吗 先感谢
  • ArrayUtil 在 Java 中导致意外错误

    每当我编写包含 ArrayUtil 的代码时 它都会导致意外错误 int values ArrayUtil randomIntArray 30 300 我使用 Eclipse 编写代码 并且 ArrayUtil 下始终有红色下划线 我究竟做
  • 下载文件夹的 Apache 热链接保护

    我试图避免从其他网站直接链接到我网站的可下载内容 我的 exe zip 和 msi 文件位于 files 目录下 我怎样才能避免直接链接到它们 提前致谢 将以下内容添加到 files 目录中的 htaccess 文件中 RewriteEng
  • Android Studio 上未找到名称为“default”的配置错误

    我正在尝试测试参考而不复制库项目 所以我创建了两个项目 一个是ProjectA其中之一是LibraryA 两个项目均位于 工作室项目文件夹 我正在尝试参考LibraryA from ProjectA我在标题中得到了错误 Here is 设置
  • awk 无法忽略“++”

    check a1 awk F v name check tolower 2 tolower name file txt 似乎 awk 在处理 字符串时存在一些问题 它无法检索文件中的值 然而 我已经尝试过改变check 44b 看起来工作得
  • 异常:“数据库行 [UnmarshalRecordImpl()] 中缺少类指示符字段。”使用 EclipseLink JAXB (MOXy) 解组 XML 时

    是否有任何方法可以使用 XmlDecriminatorNode XmlDecrimintatorValue 注释对下一个 XML 进行解组 或者有任何解决方法
  • 表示换行的首选位置

    假设我想在 HTML 表格单元格中显示以下文本 Honey Nut Cheerios Wheat Chex Grape Nuts Rice Krispies Some random cereal with a very long name
  • Python ValueError:chr() arg 不在范围内(256)

    所以我正在学习python并重做一些旧项目 该项目涉及从命令行获取字典和要翻译的消息 并翻译该消息 例如 btw 你好 你好 将被翻译为 顺便说一句 你好 你好吗 我们使用教授提供的扫描仪来读取标记和字符串 如果有需要我也可以在这里发布 这
  • Android 上无法从 xmpp 服务器获取公共房间列表?

    大家好 我是 Android 新手 目前陷入困境 我必须返回在 xmpp 服务器上创建的公共房间列表 我遇到的问题是下面的代码对于java工作正常 但在android的情况下存在空指针异常 任何有关此问题的帮助将不胜感激 我正在使用 ope
  • BigQuery 中的游标

    BigQuery 脚本中有没有一种方法可以像 MySql 脚本中那样声明游标 我必须安排一个脚本定期运行 有一个逻辑 步骤1 提取所有企业名称 多行输出 步骤 2 对于每个企业 转到企业的表并运行一些更新查询 MySql 有游标 这有助于在
  • 我可以在 Flexbox 中拉取项目吗?

    我需要创建以下结构 item item item item item 里面有5件物品 它们都垂直对齐到中间 第 3 个元素被拉到左边 最后 2 个元素被拉到右边 我知道我可以使用浮动 但它有几个缺点 包括麻烦的垂直对齐 我决定使用flexb
  • php 5.1.6 json_encode 和 codeigniter

    我正在构建一个 codeigniter 应用程序 它在很多地方使用 json encode 提供 ajax 数据 今天我了解到服务器有 php 5 1 6 它不支持此方法 或 json decode 我能做什么 请帮忙 有一个 json e
  • Char 数组初始化时出错

    它可能很简单 但我对 c 很陌生在 char 数组中 我们可以让编译器计算字符串中的字符数 例如 char myarray stringvar 没关系 但是如果我按如下方式更改代码 编译器会给出错误 string myvar stringv
  • 为什么模拟器不能在android中发送电子邮件

    我正在寻找从我的 Android 应用程序发送电子邮件的代码 我用谷歌搜索并读到给出的代码不会在模拟器上运行 我必须将代码放在实际设备上才能发送电子邮件 为什么会这样呢 先感谢您 这可能会有所帮助Android 电子邮件意图 如果您使用模拟
  • Polly 在重试时更改查询字符串

    我正在使用 NET 5 并希望使用 Polly 来更改重试时请求的查询字符串 背景 我的 IP 地址允许每分钟发出固定的请求配额 如果超出限制 我会收到特定的 4xx 状态代码 在本例中 我想添加一个查询字符串参数 key xxx来处理峰值
  • JTextArea位置,setBounds不起作用?

    我想要一个JTextArea在某个位置上 我尝试了几件事 比如使用不同的LayoutManagers no LayoutManager无论如何 setLayout null 等等 无论我做什么 似乎setBounds setLocation