猿问

如何删除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);


慕田峪9158850
浏览 155回答 1
1回答

慕容森

我听从他的建议。我没有创建新的 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);所以最后,空白消失了。
随时随地看视频慕课网APP

相关分类

Java
我要回答