java - 如何删除JPanel内图像和文本之间的空白?
问题描述
我正在尝试为我的 Java 类开发一个小应用程序。我jsoup
用来从 URL 获取信息。
我终于得到了一切,但我不知道如何删除图像和文本之间的巨大空白。有什么建议吗?
JFrame jf4 = new JFrame("¡¡NEWS WITH PICTURE!!");
JPanel p3 = new JPanel(new BorderLayout());
p3.setBorder(new EmptyBorder(5, 5, 0, 0));
p3.setLayout(new GridLayout(90, 2, 5, 5));
for (Element link: pictures) {
Element picture = link.select("source[media=(max-width: 48em)]").first();
Element text = link.select("img").first();
//System.out.println(picture);
//System.out.println(picture.attr("data-original-set"));
try {
JLabel label3 = new JLabel();
label3.setIcon(new ImageIcon(new ImageIcon(new URL(picture.attr("data-original-set"))).getImage().getScaledInstance(300, 300, Image.SCALE_DEFAULT)));
p3.add(label3);
JLabel label4 = new JLabel(text.attr("alt"));
p3.add(label4);
} catch (Exception exp) {
exp.printStackTrace();
System.out.println(exp);
}
} // IN CASE OF ERROR OF THE URL IT PRINTS java.net.MalformedURLException: no protocol: LINK TRIED
JScrollPane panelPane2 = new JScrollPane(p3);
jf4.getContentPane().add(panelPane2);
jf4.pack();
jf4.setVisible(true);
jf4.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
解决方案
最后感谢@prasad_ 我得到了解决方案。
我听从他的建议。我没有创建新的 JLabel,而是在同一标签上使用了属性 setText。
而不是这个:
JLabel label3 = new JLabel();
label3.setIcon(new ImageIcon(new ImageIcon(new URL(picture.attr("data-original-set"))).getImage().getScaledInstance(300, 300, Image.SCALE_DEFAULT)));
p3.add(label3);
JLabel label4 = new JLabel(text.attr("alt"));
p3.add(label4);
我这样做:
JLabel label3 = new JLabel();
label3.setIcon(new ImageIcon(new ImageIcon(new URL(picture.attr("data-original-set"))).getImage().getScaledInstance(300, 300, Image.SCALE_DEFAULT)));
label3.setText(text.attr("alt"));
p3.add(label3);
所以最后,空白消失了。
推荐阅读
- rust - rust 中事实上的字节类型是什么?
- php - 如何通过id从数据库中获取值
- javascript - Jquery 是 JavaScript 的替代品吗?
- angular - 将模型设置为未定义时的角度清除输入
- c++ - 将 exp 用于指数形式 (C++, 1.#INF)
- spring - API 未使用@PostMapping 接收信息,但使用@RequestMapping 是。Spring Boot、Kotlin、REST API
- python - 如何解决 libcudnn.so.6:没有 sudo 无法打开共享对象文件
- asp.net-mvc - 带有模型和控制器复选框的数据表
- neo4j - Neo4J:扩展具有子关系的节点的 CQL 是什么
- excel - 从带有年份的日期中提取唯一的月份