예와 매우 간단한 해결책은 무시하고 예를 들어 getMinimumSize()
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class CustomComponent extends JFrame {
private static final long serialVersionUID = 1L;
public CustomComponent() {
setTitle("Custom Component Test");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void display() {
add(new CustomComponents(), BorderLayout.NORTH);
add(new CustomComponents(), BorderLayout.CENTER);
add(new CustomComponents(), BorderLayout.SOUTH);
add(new CustomComponents(), BorderLayout.EAST);
pack();
// enforces the minimum size of both frame and component
setMinimumSize(getMinimumSize());
setPreferredSize(getPreferredSize());
setVisible(true);
}
public static void main(String[] args) {
CustomComponent main = new CustomComponent();
main.display();
}
}
class CustomComponents extends JLabel {
private static final long serialVersionUID = 1L;
@Override
public Dimension getMinimumSize() {
return new Dimension(200, 100);
}
@Override
public Dimension getPreferredSize() {
return new Dimension(300, 200);
}
@Override
public void paintComponent(Graphics g) {
int margin = 10;
Dimension dim = getSize();
super.paintComponent(g);
g.setColor(Color.red);
g.fillRect(margin, margin, dim.width - margin * 2, dim.height - margin * 2);
}
}
설명하는 문제를 나타내는 [sscce] (http://sscce.org/)를 제공하십시오. – trashgod
* "NetBeans에 대해 많은 불만 사항을 읽었습니다."* 원하는 IDE를 사용하는 사람들에게 아무런 문제가 없습니다. 그러나 코드에 대한 모호한 설명에 반대하거나 GUI 빌더가 일반적으로 만들어내는 비 대한 쓰레기를 보지 않아도됩니다. 또한, "IDE를 어떻게 만드나요?"라는 질문에 대한 질문이 있다면, 나는 그 질문에서 벗어났다. IDE에 대한 지원을 제공하는 것보다 더 나은 일을했습니다. IDE가 무엇인지 언급 할 필요가있는 질문자조차도 그들이 무엇을하고 있는지 전혀 모른다는 의심이 조금 듭니다. –
그것은 LayoutManager에 있습니다. 크기는 자유지만 디자인 된 것입니다. 원하는대로 행동하는 관리자를 선택하십시오. – kleopatra