자바 스윙에서 크기 조정 끌기 핸들을 만드는 방법을 알아낼 수 없습니다. 무슨 뜻인지 잘 모르겠 으면이 웹 사이트의 "질문하기"페이지를 열고 텍스트 영역의 맨 아래를보십시오. 그것은 영역의 크기를 변경하기 위해 드래그 할 수있는 바를 가지고 있습니다. Java Swing에서이 작업을 수행 할 방법을 찾고 있습니다. 나는이 지점을 어디에서보아야할지조차 모른다.Java 스윙에서 끌기
도움을 주시면 감사하겠습니다.
자바 스윙에서 크기 조정 끌기 핸들을 만드는 방법을 알아낼 수 없습니다. 무슨 뜻인지 잘 모르겠 으면이 웹 사이트의 "질문하기"페이지를 열고 텍스트 영역의 맨 아래를보십시오. 그것은 영역의 크기를 변경하기 위해 드래그 할 수있는 바를 가지고 있습니다. Java Swing에서이 작업을 수행 할 방법을 찾고 있습니다. 나는이 지점을 어디에서보아야할지조차 모른다.Java 스윙에서 끌기
도움을 주시면 감사하겠습니다.
내 의견으로는 스택 오버플로 게시 양식에 사용되는 드래그 핸들은 모양과 기능 모두에서 세로 JSplitPane과 가장 비슷합니다.
정확히 내가 무엇을 찾고 있었습니까. 감사. –
아직 시작한 적은 없지만 시작을 찾고 있기 때문에 한 번만 알려 드리겠습니다.
JComponent
(사용자 정의 서브 클래스 일 수도 있음) 나는 핸들을 나타낼 지점에 (아마도 사용자가 레이아웃 관리자를 조작 할 수 있다고 가정합니다. 그런 다음 MouseListener
및 MouseMotionListener
을 추가합니다 (아마도 동일한 클래스, 하위 클래스 MouseAdapter
)를 구성 요소에 추가합니다. 클릭 및 드래그가 감지되면 핸들이 첨부 된 구성 요소의 크기를 조정합니다.
그게 도움이되는가요?
이것은 당신이보기 시작할지도 모르는 생각입니다.
스윙에서 gui 구성 요소는 각 그래픽 요소를 그 자리에 배치 할 책임이있는 레이아웃 관리자 (LayoutManagers)를 사용합니다.
요소를 배치하는 논리가 LayoutManager에서 다른 요소까지 다양하기 때문에 약간 복잡합니다. 대부분의 경우 조합해야합니다.
LayoutManager는 일반적으로 레이아웃중인 구성 요소에 최소 크기, 최대 크기 및 기본 크기가 무엇인지 알리기 위해 쿼리합니다. 일부 림은이 정보를 완전히 무시하고, 일부는 부분적으로이 정보를 사용합니다.
글쎄, 권장되는 크기 (또는 최대치)를 준 레이아웃 관리자를 사용하여 다른 요소 위에 마우스 수신기를 추가하는 것이 좋습니다. 요소가 드래그되면 구성 요소의 최대/최소/preff 크기 (거의 대부분 JTextArea)를 프로그램 적으로 증가/감소시키고 LYM이 구성 요소의 시각적 구성을 조정하도록 할 수 있습니다.
그래서이 의사과 같습니다
단지 의사 코드의public App {
private JComponent container;
private JComponent myTarget;
private JComponent dragComponent;
public void someWhere() {
container.setLayoutManager(someLayoutManager());
container.add(myTarget);
container.add(dragComponent);
// warn: not actual method names, I don't remember them
dragComponent.addMouseListener(new MouseAdapter() {
public void mouseDragged(MouseEvent me) {
Point point me.getPoint();
int h = myTarget.getHeight();
int w = myTarget.getWidth();
// Do some math to know if you have to add or subtract.
int movement = // -20, +20, whatever.
myTarget.setMaximumSize(h + (movement) , w);
}
});
}
}
, 그래서 저를 쏘지 마세요.
올바른 레이아웃 관리자를 찾고 마우스 수신기를 추가하여 구성 요소가 드래그되는 위치를 알 수 있습니다. 구성 요소를 드래그 할 때마다 대상 구성 요소의 크기를 변경하고 LayoutManager에서 구성 요소의 모양을 변경하게합니다.
이 정보가 도움이되기를 바랍니다.
p.s. 스윙도 drag/drop을 지원합니다 (도움이되는지 확인하십시오).
Oooorrrr ... JSplitPane => http://bit.ly/l8doc hehehe를 사용할 수 있습니다. – OscarRyz
다른 사람이 이미 대답 했으므로 JSplitPane을 수평 정렬로 설정하기 만하면됩니다. 분리 막대 너비를 원하는 픽셀 크기로 조정할 수 있습니다.
이 링크가 없습니다 – MahdeTo
정말 JSplitPane을 원하십니까? 좀 더 복잡한 기능을 원한다고 생각했지만 어쩌면 그렇게해서는 안됩니다. –
아니, 필요한 모든 JSplitPane했습니다. 상관없이, 귀하의 도움에 감사드립니다 mmyers. –