>

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

  • 답변 # 1

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

    마지막으로 공백은 사라집니다.

관련 자료

  • 이전 android - kotlin을 사용하여 SQlite 데이터베이스의 다른 열에 열을 복사하는 방법
  • 다음 sql - 기본 키 열과 데이터를 가져 오지 않는 두 개의 외래 키 열이있는 조인 테이블을 만들었습니다