Как убрать пробел между изображением и текстом внутри JPanel? - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь разработать небольшое приложение для своего класса Java. Я использую jsoup для получения информации из URL.

Я наконец все получил, но я не знаю как убрать этот огромный пробел между изображениями и текстом . Любой совет?

enter image description here

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);

1 Ответ

0 голосов
/ 11 января 2019

Наконец, благодаря @prasad_ я получил решение.

Я следую его совету. Вместо того, чтобы создавать новый JLabel, я использую propiertie 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);

Итак, наконец, пробел исчезает.

...