JButton settext具体位置

2023-12-01

我有一个带有图像图标的 JButton,我需要定位文本。 有没有办法将 JButton 的文本定位在特定位置,而不是使用 CENTER、LEADING、TOP 等?


我以前从未在 JButton 上尝试过,但也许您可以添加 JLabel 作为按钮上的组件。然后,您可以使用布局管理器或边框来更合适地放置标签。

以下是使用图标将组件添加到 JLabel 的一些示例:

import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;

public class LabelImageText extends JPanel
{
    public LabelImageText()
    {
        JLabel label1 = new JLabel( new ColorIcon(Color.ORANGE, 100, 100) );
        label1.setText( "Easy Way" );
        label1.setHorizontalTextPosition(JLabel.CENTER);
        label1.setVerticalTextPosition(JLabel.CENTER);
        add( label1 );

        //

        JLabel label2 = new JLabel( new ColorIcon(Color.YELLOW, 200, 150) );
        label2.setLayout( new BoxLayout(label2, BoxLayout.Y_AXIS) );
        add( label2 );

        JLabel text = new JLabel( "More Control" );
        text.setAlignmentX(JLabel.CENTER_ALIGNMENT);
        label2.add( Box.createVerticalGlue() );
        label2.add( text );
        label2.add( Box.createVerticalStrut(10) );

        //

        JLabel label3 = new JLabel( new ColorIcon(Color.GREEN, 200, 150) );
        label3.setLayout( new GridBagLayout() );
        add( label3 );

        JLabel text3 = new JLabel();
        text3.setText("<html><center>Text<br>over<br>Image<center></html>");
        text3.setLocation(20, 20);
        text3.setSize(text3.getPreferredSize());
        label3.add( text3 );

        //

        JLabel label4 = new JLabel( new ColorIcon(Color.CYAN, 200, 150) );
        add( label4 );

        JTextPane textPane = new JTextPane();
        textPane.setText("Add some text that will wrap at your preferred width");
        textPane.setEditable( false );
        textPane.setOpaque(false);
        SimpleAttributeSet center = new SimpleAttributeSet();
        StyleConstants.setAlignment(center, StyleConstants.ALIGN_CENTER);
        StyledDocument doc = textPane.getStyledDocument();
        doc.setParagraphAttributes(0, doc.getLength(), center, false);
        textPane.setBounds(20, 20, 75, 100);
        label4.add( textPane );
    }

    public static class ColorIcon implements Icon
    {
        private Color color;
        private int width;
        private int height;

        public ColorIcon(Color color, int width, int height)
        {
            this.color = color;
            this.width = width;
            this.height = height;
        }

        public int getIconWidth()
        {
            return width;
        }

        public int getIconHeight()
        {
            return height;
        }

        public void paintIcon(Component c, Graphics g, int x, int y)
        {
            g.setColor(color);
            g.fillRect(x, y, width, height);
        }
    }

    private static void createAndShowUI()
    {
        JFrame frame = new JFrame("LabelImageText");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add( new LabelImageText() );
        frame.pack();
        frame.setLocationRelativeTo( null );
        frame.setVisible( true );
    }

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

我怀疑 JTExtPane 示例是否可以使用按钮,因为文本窗格将拦截鼠标事件,因此当您单击文本时将无法单击该按钮。所以我会坚持使用向按钮添加标签的示例。

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

JButton settext具体位置 的相关文章

  • 相当于 java PBKDF2WithHmacSHA1 的 Python

    我的任务是构建一个 API 的使用者 该 API 需要带有 UNIX 时间种子值的加密令牌 我看到的示例是使用我不熟悉的 Java 实现的 在阅读文档和其他堆栈文章后一直无法找到解决方案 使用javax crypto SecretKey j
  • Java selenium - 如何在 TimeoutException 之后正确刷新网页?

    ChromeOptions options new ChromeOptions options addExtensions new File extension 6 2 5 0 crx ZenMate options addExtensio
  • 我需要在 Java 9 中使用哪个模块才能使用 JPA?

    我正在使用一个需要 JPA 的项目测试 Java 9 javax persistence 类 当我添加module info java并声明我的模块 下的所有类javax persistece包变得不可用 我搜索了很多 但找不到在 Java
  • Mediaplayer 播放几次后停止播放

    我有一个按钮 按下它会播放一个随机声音剪辑 然后播放另一个声音剪辑 然后通过一个媒体播放器播放另一个声音剪辑 但是多次按下该按钮 15 20 次 后 所有音频都会停止 我在播放最后一个音频剪辑后释放媒体播放器 所以我不认为这是原因 有什么指
  • 在 Spring Webflux 中执行阻塞 JDBC 调用

    我使用 Spring Webflux 和 Spring data jpa 使用 PostgreSql 作为后端数据库 我不想在进行数据库调用时阻塞主线程 例如find and save 为了实现同样的目标 我有一个主调度程序Controll
  • Java:将二维字符串数组打印为右对齐表格

    是什么best打印a的单元格的方法String 数组作为右对齐表 例如 输入 x xxx yyy y zz zz 应该产生输出 x xxx yyy y zz zz 这似乎是一个should能够完成使用java util Formatter
  • Java:从 ScriptEngine javascript 返回一个对象

    我正在尝试使用 Java 来评估 javascript脚本引擎 https docs oracle com javase 7 docs api javax script ScriptEngine html班级 这是我正在尝试做的事情的一个简
  • 在实现接口的类上强制使用单例模式

    我最好用一个例子来解释这个问题 我有一个接口模型可用于访问数据 模型可以有不同的实现 可以以各种格式表示数据 例如 XMl txt 格式等 Model不关心格式 可以说这样的一个实现是myxml模型 现在我想强迫myxml模型以及其他所有实
  • Java MYSQL/JDBC 查询从缓存的连接返回过时的数据

    我一直在 Stackoverflow 中寻找答案 但似乎找不到不涉及 Hibernate 或其他数据库包装器的答案 我直接通过 Tomcat 6 Java EE 应用程序中的 MYSQL 5 18 JDBC 驱动程序使用 JDBC 我正在缓
  • 有没有办法删除 JShell 中的导入?

    我正在发现 JShell 并且发现默认添加的导入 jshell gt imports import java io import java math import java net import java nio file import j
  • 为什么从类构造函数调用的方法应该是最终的? [复制]

    这个问题在这里已经有答案了 我是一名 Java 新手 我试图理解 Oracle 网站教程中的以下行 https docs oracle com javase tutorial java IandI final html https docs
  • 运行 Espresso 测试时在 Android studio 中找不到属性 android:forceQueryable

    我已经使用 android studio 录制了我的 Android 应用程序 Espresso 测试记录浓缩咖啡测试选项中Run菜单 在记录的最后 我用自己的文件名保存了测试 单击保存按钮后 IDE 会自动在以下位置创建文件Android
  • Java环境变量设置方法

    我已将以下行插入 bash profile export GOOGLE APPLICATION CREDENTIALS Users jun Downloads export PATH PATH GOOGLE APPLICATION CRED
  • 隐藏 JTable 临时列

    我正在使用 JTable 显示数据库中的数据 现在我想通过 Jcombobox 过滤我的 jtable 我正在使用 Jcombo 框 其中包含 030 024 045 等值 这些值已在 jtable 中设置为列标题 当我单击组合时 选定的列
  • Spring Data MongoDB 和批量更新

    我正在使用 Spring Data MongoDB 并且想要执行批量更新 就像此处描述的那样 http docs mongodb org manual reference method Bulk find update Bulk find
  • 在 Spark MLlib 上使用 Java 中的 Breeze

    在尝试从Java使用MLlib时 使用微风矩阵运算的正确方法是什么 例如scala 中的乘法很简单 matrix vector 相应的功能在Java中是如何表达的 有一些方法 例如 colon times 可以通过正确的方式调用 breez
  • 如何在 tomcat 上部署 Java Web 应用程序 (.war)?

    我有一个 warJava Web 应用程序的文件 现在我想将它上传到我的 ftp 服务器 以便我可以执行它 我应该执行哪些步骤来运行它 webapp的上下文路径是 mywebapp Edit 实际上 我的 ftp 服务器名称是ftp bil
  • ImageIO.read(...) - 非常慢,有更好的方法吗?

    我正在加载大量将在我的应用程序中使用的图标 我计划在服务器启动时从 jar 中加载所有这些 然而 由于数百张图像加起来刚刚超过 9MB 执行此任务仍然需要 30 秒多的时间 我现在正在一个单独的线程中执行此操作 但这让我想知道我是否在代码中
  • 为什么我们不能在函数式接口中重载抽象方法? (爪哇)

    所以我熟悉java中的函数式接口 以及它们与lambda表达式的使用 一个函数式接口只能包含一个抽象方法 当从 lambda 表达式使用这一孤独方法时 您不需要指定其名称 因为接口中只有一个抽象方法 编译器知道这就是您正在引用的方法 Exa
  • RetentionPolicy CLASS 与 RUNTIME

    两者之间有什么实际区别RetentionPolicy CLASS and RetentionPolicy RUNTIME 看起来两者都被记录到字节码中 并且无论如何都可以在运行时访问 无论如何 两者都可以在运行时访问 那不是那个javado

随机推荐

  • 在控制器 (ApplicationMailer) 中打开 S3 上的远程映像 - 没有这样的文件或目录 @ rb_sysopen

    我正在尝试打开通过 Paperclip 上传到 S3 的个人资料图片 以便将其作为电子邮件的在线附件提交 虽然我收到错误 No such file or directory rb sysopen 这是我有问题的代码 attachments
  • HSQLDB问题:从Java代码启动HSQL数据库

    当我必须为我的应用程序运行 HSQLDB 时 我必须从命令提示符执行此操作 因此我总是双击 Server bat 批处理文件 来启动服务器 其中包含 java classpath war WEB INF lib hsqldb jar org
  • 将变量从 Scriptlet 传递到 Javascript。

    我有这个代码片段 我想要做的是在我的 JavaScript 函数 gotoa 中获取变量 temp1 的值 在这个特
  • 用于将数据从一个表复制到另一个表的存储过程

    I have 成对的桌子在格式中TABLE and TABLE TWIN now TABLE是包含大量数据的主表 TABLE TWIN是一个具有完全相同字段但数据很少 不同数据 的表 现在我想复制所有行TABLE TWIN to TABLE
  • 返回指向数组的指针的函数

    我成功地使用了可变长度数组C我现在有以下内容 include
  • 安装张量流版本0.12

    我如何在 Windows x64 CPU 上安装tensorflow 0 12 如果无处可寻 我尝试通过 pip 安装 python 3 6 没有解决 pip install user install tensorflow 0 12 还用
  • 在程序中创建表

    我创建了表 Risiko 它应该是动态的 我以为它会那么简单 但事实并非如此 我该怎么解决呢 我做错了什么 CREATE OR REPLACE PROCEDURE TABLERISIKO IS BEGIN drop table risiko
  • .htaccess 域名重定向

    我有一个服务器 有 3 个域都指向它 所有域都位于同一网站上 www domain1 com www domain2 com www domain3 com 如何使用 htaccess 将 www domain3 com 重定向到 www
  • 音频文件无法在设备上运行,但可以在模拟器上运行

    我正在 iPhone 应用程序中播放音频 但问题是它在模拟器上工作正常 但在设备上不起作用 这是我的代码 当此代码运行时 它只是关闭应用程序 NSString thePath NSBundle mainBundle pathForResou
  • 在 Matlab 中绘制正方形曲面

    如何在中绘制正方形曲面Matlab 更准确地说 我想绘制一个表面值为 0 5 的正方形 该正方形位于 X 1 到 X 1 和 Y 2 5 到 3 5 处 我尝试了以下方法 X Y meshgrid 3 5 5 3 5 Z zeros 15
  • 如何更改TOMCAT使用的Java版本?

    我的系统上安装了 Java 1 6 和 Tomcat 5 5 但是 Tomcat 5 5 访问 Java 1 5 因此结果我收到错误Bad version number in class file使用 JSP 执行 java 代码时 如何将
  • Flutter - 允许用户输入主题标签

    你好 Flutter 新手 我想让我的用户输入一些链接到该条目的主题标签 这些标签将进入 Firestore For the hashtag I set it as a List but I m not sure how to let us
  • 如何删除已打开句柄的文件?

    问题历史 现在我用Windows 媒体播放器 SDK 9在我的桌面应用程序中播放 AVI 文件 它在 Windows XP 上运行良好 但是当我尝试运行它时在 Windows 7 上我发现了一个错误 我无法在播放后立即删除 AVI 文件 问
  • django从文件导入模板[重复]

    这个问题在这里已经有答案了 我有 3 个页面 每个 html 文件的顶部都有相同的菜单 菜单中有很多标签 当我想修改标签中的所有链接时遇到问题 我想将菜单写入另一个名为 menu txt 的文件中 并使用模板加载 menu txt 然后将菜
  • 将图像从网络摄像头发布到 Azure Face Api

    我正在尝试将从网络摄像头获取的图像上传到 Microsoft Azure Face Api 我从 canvas toDataUrl image png 获取图像 其中包含数据 Uri 我将内容类型更改为 application octet
  • 用于从字符串中删除特定 BBCode 的正则表达式

    我正在尝试编写一个简单的方法来从输入字符串中删除特定的 BBCodes 例如 我有一个输入 string input b Hello World b 我希望能够做到 Remove input b 并得到输出 Hello World 正则表达
  • Numpy 似乎产生了不正确的特征向量

    我想使用 Numpy 计算特征值和特征向量 这是我的代码 import numpy as np from numpy import linalg as LA lapl np array 2 1 1 0 0 0 1 3 0 1 0 1 1 0
  • 通过 .NET 关闭时 Excel 2007 挂起

    我有一个 Visual Basic NET 程序 需要打开和关闭 Excel 电子表格 打开和阅读电子表格工作正常 但尝试关闭 Excel 2007 应用程序会导致其挂起 它似乎关闭了 但如果您查看任务管理器 应用程序仍在运行 我用来关闭它
  • 折叠所有表单项 JQuery Mobile

    使用 JQuery 移动版 1 4 0 我有一个表单 其中包含许多带有多个复选框的可扩展元素 当我单击刷新按钮时 我可以清除所有用户选择 但不同的字段集仍然存在expanded 我可以刷新页面 但我认为这不是一个顺利的选择 除了为每个字段集
  • JButton settext具体位置

    我有一个带有图像图标的 JButton 我需要定位文本 有没有办法将 JButton 的文本定位在特定位置 而不是使用 CENTER LEADING TOP 等 我以前从未在 JButton 上尝试过 但也许您可以添加 JLabel 作为按