为了账号安全,请及时绑定邮箱和手机立即绑定

如何删除JPanel内图像和文本之间的空白?

如何删除JPanel内图像和文本之间的空白?

慕田峪9158850 2022-04-28 17:09:55
我正在尝试为我的 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 TRIEDJScrollPane panelPane2 = new JScrollPane(p3);jf4.getContentPane().add(panelPane2);jf4.pack();jf4.setVisible(true);jf4.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
查看完整描述

1 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

我听从他的建议。我没有创建新的 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);

所以最后,空白消失了。


查看完整回答
反对 回复 2022-04-28
  • 1 回答
  • 0 关注
  • 154 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信