如何在滚动窗格上放置多个标签以及为什么该标签放置在中心?

2024-01-02

我正在尝试做一个feed-box显示从服务器到客户端的所有更新。Jframe我放置了一个JScrollPane,以便客户端可以轻松看到更多数量的提要。

超过JScrollPane,我试图放置一个JLabel然后它看起来像这样:

标签被放置在中心,如果我尝试放置一个新的JLabel,虽然IDE的导航窗口显示,但它已经放置,我看不到它。封闭的布局JFrame已设置为免费设计默认情况下。我尝试更改为流程布局但这没有帮助。

为什么JLabel放置在窗口的中央?这是从服务器向客户端显示提要的正确方法吗?


The 完整的例子 https://stackoverflow.com/revisions/10461087/2讨论过here https://stackoverflow.com/q/10461087/230513将 RSS 提要中的条目添加到JTextPane。我在下面展示了一种变体。

import java.awt.EventQueue;
import java.awt.GridLayout;
import java.net.URL;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.CharacterData;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

/**
 * @see https://stackoverflow.com/a/19164649/230513
 * @see https://stackoverflow.com/q/10461087/230513
 */
public class NewsFeed extends JPanel {
    public NewsFeed() {
        this.setLayout(new GridLayout());
        JTextPane newsPane = new JTextPane();
        newsPane.setContentType("text/html");
        newsPane.setEditable(false);
        JScrollPane scrollPane = new JScrollPane(newsPane);
        scrollPane.setVerticalScrollBarPolicy(
            javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
        RSS reader = RSS.getInstance();
        String rssNews = reader.writeNews();
        newsPane.setText(rssNews);
        this.add(scrollPane);
    }

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

            @Override
            public void run() {
                JFrame f = new JFrame("News");
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                f.add(new NewsFeed());
                f.pack();
                f.setSize(640, 480);
                f.setLocationRelativeTo(null);
                f.setVisible(true);
            }
        });
    }

    private static class RSS {

        private static final String NAME =
            "http://thestar.com.my.feedsportal.com/c/33048/f/534600/index.rss";
        private static RSS instance = null;

        public static RSS getInstance() {
            if (instance == null) {
                instance = new RSS();
            }
            return instance;
        }

        public String writeNews() {
            String result = "";
            try {
                DocumentBuilder builder = DocumentBuilderFactory
                    .newInstance().newDocumentBuilder();
                URL u = new URL(NAME);
                Document doc = builder.parse(u.openStream());
                NodeList nodes = doc.getElementsByTagName("item");
                for (int i = 0; i < nodes.getLength(); i++) {
                    Element element = (Element) nodes.item(i);
                    result += "Title: " + getElementValue(element, "title") + "<br>";
                    result += "Link: " + getElementValue(element, "link") + "<br>";
                    result += "Publish Date: " + getElementValue(element, "pubDate") + "<br>";
                    result += "Description: " + getElementValue(element, "description") + "<br>";
                }
            } catch (Exception ex) {
                ex.printStackTrace(System.err);
            }
            return result;
        }

        private String getCharacterDataFromElement(Element e) {
            try {
                Node child = e.getFirstChild();

                if (child instanceof CharacterData) {
                    CharacterData cd = (CharacterData) child;
                    return cd.getData();
                }
            } catch (Exception ex) {
                ex.printStackTrace(System.err);
            }
            return "";
        }

        protected float getFloat(String value) {
            if (value != null && !value.equals("")) {
                return Float.parseFloat(value);
            }
            return 0;
        }

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

如何在滚动窗格上放置多个标签以及为什么该标签放置在中心? 的相关文章

  • NoInitialContextException:heroku 战争部署

    我一直在开发一个 J2EE 项目 并且在其中使用连接池 也通过部署在 heroku 上的数据库进行访问 我使用以下代码来设置 Connection 对象 Context initContext new InitialContext Cont
  • Guice 忽略注入构造函数参数上的 @Nullable

    我正在使用 Guice v 3 0 并且有一个值被注入到构造函数中 该值可以为 null 因此我在构造函数中使用 Nullable 来自 javax annotations 注释了该参数 public MyClass Parameter1
  • 从 MS Access 中提取 OLE 对象(Word 文档)

    我有一个 Microsoft Access 数据库 其中包含一个包含 Microsoft Word 文档的 OLE 对象字段 我试图找到代码来检索保存在 OLE 对象中的文件 以便用户可以从我的 JavaFx 应用程序中的按钮下载它 但没有
  • 在 Struts 2 中传递 URL 参数而不使用查询字符串

    我想使用类似的 URL host ActionName 123 abc 而不是像这样传递查询字符串 host ActionName parm1 123 parm2 abc 我怎样才能在 Struts 2 中做到这一点 我按照下面的方法做了
  • tomcat 7.0.50 java websocket 实现给出 404 错误

    我正在尝试使用 Java Websocket API 1 0 JSR 356 中指定的带注释端点在 tomcat 7 0 50 上实现 websocket 以下是我如何对其进行编码的简要步骤 1 使用 ServerEndpoint注解编写w
  • 为自定义驱动程序创建 GraphicsDevice

    我正在开发一个在嵌入式系统中使用 Java 的项目 我有用于屏幕和触摸输入的驱动程序 以及用于文本输入的虚拟键盘 我的屏幕驱动程序有一个Graphics2D您可以绘制的对象和repaint Rectangle 更新方法 类似地 触摸驱动器能
  • Java:从集合中获取第一项

    如果我有一个集合 例如Collection
  • 如何使用正则表达式验证 1-99 范围?

    我需要验证一些用户输入 以确保输入的数字在 1 99 范围内 含 这些必须是整数 Integer 值 允许前面加 0 但可选 有效值 1 01 10 99 09 无效值 0 007 100 10 5 010 到目前为止 我已经制定了以下正则
  • 如何通过注解用try-catch包装方法?

    如果应该在方法调用中忽略异常 则可以编写以下内容 public void addEntryIfPresent String key Dto dto try Map
  • 在 Java 中通过 XSLT 分解 XML

    我需要转换具有嵌套 分层 表单结构的大型 XML 文件
  • 如何删除日期对象的亚秒部分

    当 SQL 数据类型为时间戳时 java util Date 存储为 2010 09 03 15 33 22 246 如何在存储记录之前将亚秒设置为零 例如 在本例中为 246 最简单的方法是这样的 long time date getTi
  • Java:如何确定文件所在的驱动器类型?

    Java 是否有一种独立于平台的方法来检测文件所在的驱动器类型 基本上我有兴趣区分 硬盘 可移动驱动器 如 USB 记忆棒 和网络共享 JNI JNA 解决方案不会有帮助 可以假设 Java 7 您可以使用 Java 执行 cmd fsut
  • 在 Clojure 中解压缩 zlib 流

    我有一个二进制文件 其内容由zlib compress在Python上 有没有一种简单的方法可以在Clojure中打开和解压缩它 import zlib import json with open data json zlib wb as
  • 如何停止执行的 Jar 文件

    这感觉像是一个愚蠢的问题 但我似乎无法弄清楚 当我在 Windows 上运行 jar 文件时 它不会出现在任务管理器进程中 我怎样才能终止它 我已经尝试过 TASKKILL 但它对我也不起作用 On Linux ps ef grep jav
  • JAVA中遍历JSON数据

    我是 JSON 新手 我使用 HTTPUrlConnections 并在 JAVA 程序中获得一些响应 响应数据将类似于 data id 1 userId 1 name ABC modified 2014 12 04 created 201
  • 避免 Java 中的重复导入:继承导入?

    有没有办法 继承 导入 Example 常见枚举 public enum Constant ONE TWO THREE 使用此枚举的基类 public class Base protected void register Constant
  • 使用Java绘制维恩图

    我正在尝试根据给定的布尔方程绘制维恩图 例如 a AND b AND c我想在 Android 手机上执行此操作 因此我需要找到一种使用 Java 来执行此操作的方法 我找到了一个完美的小部件 它可以完成我在这方面寻找的一切布尔代数计算器
  • 禁用 Android 菜单组

    我尝试使用以下代码禁用菜单组 但它不起作用 菜单项仍然启用 你能告诉我出了什么问题吗 资源 菜单 menu xml menu menu
  • 记录类名、方法名和行号的性能影响

    我正在我的 java 应用程序中实现日志记录 以便我可以调试应用程序投入生产后可能出现的潜在问题 考虑到在这种情况下 人们不会奢侈地使用 IDE 开发工具 以调试模式运行事物或单步执行完整代码 因此在每条消息中记录类名 方法名和行号将非常有
  • 即使调整大小,如何获得屏幕的精确中间位置

    好的 这个问题有两部分 当我做一个JFrame 并在其上画一些东西 即使我将宽度设置为 400 并使其在一个项目击中它时 当然 允许项目宽度 它会反弹回来 但由于某种原因 它总是偏离屏幕约 10 个像素 有没有办法解决这个问题 或者我只需要

随机推荐

  • 如何使用 CSS 或 HTML 将特定的 HTML 行和列加粗?

    我想将 HTML 表格的第一行和第一列 第 0 行和第 0 列 加粗 如何使用 HTML 或 CSS 来实现这一点 桌子 table border 1 tbody tr td td td translate com AND https tr
  • ASP.NET Core:如何获取远程IP地址?

    我尝试获取远程 客户端 IP 地址 var ip httpContext Features Get
  • React JS React-router-dom 导航不工作

    我尝试在登录我的 React 应用程序后重定向用户 但导航不起作用 我不知道为什么 这是我的代码 感谢您的帮助 import React Component from react import Route Navigate from rea
  • 响应式 D3 图表

    我有这张 D3 图表 几乎是开箱即用的 有没有办法让它响应并使用宽度和高度变量 innerRadius 和outerRadius 的百分比 我正在开发一个响应式网站 需要根据屏幕尺寸 浏览器尺寸进行更改 jsfiddle在这里 http j
  • 编辑Android XML文件时如何避免XServer上的Eclipse泄漏?

    当我在 Eclipse 中编辑 XML 文件 主要是 Android 布局等 时 它会导致 XServer 上的泄漏 并最终耗尽我的所有 RAM 4GB 因此我必须按 Ctrl Alt Backspace 才能继续 你知道有什么补救办法吗
  • SQL Server 2005 和临时表范围

    我已经阅读了临时表和范围的主题 我看到的所有答案似乎都没有谈到我的担忧之一 据我所知 本地临时表的范围仅在存储过程或子存储过程的生命周期内有效 然而并发方面的情况如何 即 如果我有一个存储过程创建一个临时表 该临时表是从两个不同的进程但从同
  • 如何在 Django 运行时回退到多种语言?

    我正在构建一个 Django 应用程序 它使用 Django 的翻译功能来提供多种语言的本地化 不过我也是用Django的翻译功能来翻译的某些术语进入不同的行业基于当前登录用户的设置 例如 对于在学习评估行业工作的英语用户 我想要以下行为
  • tableView reloadData 上未调用 cellForRowAtIndexPath

    我在一个视图上有一个 UITableView 它在应用程序启动时加载数据 然后当用户在框中输入文本并点击按钮时 我重新查询数据库 重新填充存储数据的原始 NSMutableArray表的数据 所有这些都运行良好 在一些日志语句中 我可以看出
  • 组的行级安全性或使行可供组访问

    我希望表中的行只能由组成员访问 我通过以下方法创建用户并将其添加到组中 CREATE USER abc LOGIN PASSWORD securedpassword1 CREATE USER xyz LOGIN PASSWORD secur
  • 在节点之间绘制连接而不重叠节点的算法

    我在图中有一系列节点 节点由用户放置在特定位置 保证节点不重叠 并且事实上 它们之间有一个空间缓冲区 这些节点相互连接 并且每条边在特定点处连接到节点 我需要绘制节点之间的边缘 以便边缘 必填 不要与父节点重叠 理想情况下 不会重叠任何节点
  • 关于 iPhone 应用程序下载计数

    我怎样才能知道我的 iphone 应用程序在 itunesconnect 中的下载计数 为此 您必须登录 iTunesConnect apple com 网站 然后转到 销售和趋势 模块 在这里 您可以查看已下载的应用程序数量
  • 如何在新选项卡或窗口中打开 PDF 文件而不是使用 C# 和 ASP.NET MVC 下载它?

    我有发票屏幕 在这个屏幕上有可用的订单数量 所以当我们创建发票时 我们需要填写一张表格 所以我想要的解决方案是当我提交此发票表格或单击此提交按钮时 pdf 应该在新窗口中打开标签 我想向您澄清 我们不会将此 pdf 保存在任何地方 div
  • Bootstrap Carousel 在 Safari 网络浏览器和 iPad/iPhone 上无法滑动

    在其他浏览器上是滑动的 但在Safari中它会改变图像但不会滑动 我尝试了这段代码以及transition js document ready function Carousel carousel interval 1000 data sl
  • 给定出生日期如何计算下一个生日?

    鉴于 Postgres 数据库中的此架构 CREATE TABLE person id serial PRIMARY KEY name text birth date date 我如何查询表来获取每个人的日期next今天之后过生日吗 例如
  • 使用 Webpack 2 延迟加载 Vue 组件

    我想尝试延迟加载 with webpack 我按路线分割我的应用程序 每个路线都有所需的组件 const Home resolve gt require ensure components Home Home vue gt resolve
  • 不允许从闪亮输出对象读取对象

    我正在使用以下 R 平台和版本 平台 x86 64 apple darwin10 8 0version string R 版本 3 0 3 2014 03 06 我是闪亮的新手 我正在尝试使用 rWBclimate 数据集 这是 R 中的一
  • Environment.getExternalStorageDirectory().getAbsolutePath() 不起作用并提供 /storage

    My code myDb openOrCreateDatabase sdcard FashionGirl ImagesDB db Context MODE PRIVATE null myDb openOrCreateDatabase dbP
  • android startActivityForResult 正在终止父活动中的线程

    我有一个活动 其中有一个线程和一个视图 它们与 LunarLander 非常相似 为了显示游戏内菜单 我为另一个活动调用 startActivityForResult 该活动上有许多按钮 然后将按下的按钮类型返回到父活动 这很好 除非当我在
  • 将数据从 React 发送到 MySQL

    我正在创建一个发布应用程序 需要使用 React 和 MySQL 数据库之间的通信来来回发送信息 使用 Express 作为我的 JS 服务器 服务器代码如下所示 const express require express const bo
  • 如何在滚动窗格上放置多个标签以及为什么该标签放置在中心?

    我正在尝试做一个feed box显示从服务器到客户端的所有更新 Jframe我放置了一个JScrollPane 以便客户端可以轻松看到更多数量的提要 超过JScrollPane 我试图放置一个JLabel然后它看起来像这样 标签被放置在中心