그래서 여러 JPanels를 보유하고있는 JFrame이있는 그래픽 프로그램을 시작하려고합니다. JPanels는 하나의 이미지를 만들기 위해 결합해야하지만, 프로그램을 실행하면 이미지 주위에 테두리가 보입니다. 테두리가 이미지를 보유하고있는 JLabel에 의해 발생했는지 아니면 JPanel 때문에 또는 레이아웃 관리자로 인해 발생하는지 구분할 수 없습니다.JLabel에서 경계를 제거하려면 어떻게해야합니까?
테두리를 제거하려면 어떻게해야합니까? 레이아웃 관리자를 변경해야합니까? 그렇다면 어떻게?
import java.util.*;
import java.awt.*;
import javax.swing.*;
public class StarryNight {
JFrame backGround;
JPanel rootPanel;
JLabel rootImage;
public StarryNight(){
backGround = new JFrame("Starry Starry Night");
backGround.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
backGround.setResizable(false);
backGround.setSize(1000,667);
backGround.getContentPane().setBackground(Color.BLACK);
backGround.setLayout(new BoxLayout(backGround.getContentPane(),BoxLayout.Y_AXIS));
rootPanel = new JPanel();
rootPanel.setSize(1000, 667);
rootPanel.setBackground(Color.BLUE);;
rootImage = new JLabel();
rootImage.setIcon(new ImageIcon(getClass().getResource("Starry Night.jpg")));
rootPanel.add(rootImage);
JPanel jap = new JPanel();
jap.setSize(1000,100);
jap.setBackground(Color.GREEN);
backGround.add(rootPanel);
backGround.add(jap);
backGround.pack();
backGround.setVisible(true);
}
private static void runGUI() {
JFrame.setDefaultLookAndFeelDecorated(true);
StarryNight ssn= new StarryNight();
}
public static void main(String args[]){
javax.swing.SwingUtilities.invokeLater(new Runnable(){
public void run(){
runGUI();
}
});
}
}
AFAIK, JLabel에는 기본적으로 테두리가 없습니다. 문제는 다른 곳에있다. –
크기를 설정하지 마십시오. 이미지, 구성 요소 및 레이아웃을 통해 크기를 설정하십시오. 이것은 우리가 가진 이미지가 없기 때문에 당신의 문제 일 수 있습니다. –