다른 클래스에서 빌드 된 JPanel의 치수 (크기 또는 크기에 관계없이)를 어떻게 얻을 수 있습니까? 내가 GUI를 구축 클래스 자바의 다른 클래스에서 JPanel 객체의 크기 가져 오기
은이 같은 새로운 패널을 instanziate :PlotPanel specificPlot = gui.BuildPlottingData.makeImagePlot(discDbSpecific, sections,
windowLength, 1, algoParam1, algoParam2, leadWindowSize, 0, errorAcc);
이 패널은 보통 인 JPanel처럼 행동하는 것입니다 볼 수 있듯이 :
public class PlotPanel extends JPanel {...
내가 설정 preferredSize가 올바르게 (올바르게 시각화되고있다) specificPlot.getPreferredSize()
를 호출
은 'java.awt.Dimension의 [폭 = 10, 높이 = 10]'분명히 잘못된 그게 전부를 제공합니다 .. Btw는
: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4915023
: 당신은 어떻게 버그를 처리하는 어떤 생각을 가지고 있습니까때때로 BoxLayout이 패널을 잘라냅니다. 크기에 액세스 할 필요가있는 이유는 ... 지금까지 모든 것을 시도했습니다 ... 또는 세로 형 BoxLayout과 같은 리 스튜디오와 함께 대체 LayoutManager를 알고 있습니까? 수동으로 크기를 읽는가? 같은 문제에
이전 포스트 reffer는 .. 편집 : 나는 getPreferredSize
-method 우선합니다. 문제는 내가
package getdata;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;
public class Test extends JPanel{
@Override
public Dimension getPreferredSize(){
return new Dimension(10,20);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
setBackground(Color.white);
Graphics2D paint = (Graphics2D) g;
paint.drawString("test", 0, 10);
int strWdt = paint.getFontMetrics().stringWidth("test");
}
가}
방법 strWdt을 읽고 다음과 같이 크기에 영향을 미치는 느릅 나무 모든 매개 변수에 액세스 할 수 해달라고입니까? 심지어 클래스에 instanziate 경우 초기 값을 갖습니다.
가 다른 클래스에서 .. 그 단지 인 JPanel을 SSCCE 누락 지금까지 미안 주셔서 감사합니다 최소, 최대 및 기본 크기 (LayoutManagers의 나머지 부분과 비교에) 접수() '나는 정확한 크기를 얻는다. 문제는이 메서드에서 패널의 높이에 영향을주는 모든 매개 변수에 액세스 할 수 없다는 것입니다. (겹쳐진 'paintComponent()'- 메서드에서 설정하는 중 ... –
이러한 메서드를 오버로드하여 전용 void, 생성자를 만듭니다. – mKorbel