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

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(使用前将#替换为@)

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

随机推荐

  • 如何使用 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然后它看起来像这样 标签被放置在中心