강한
대부분의 JSomething을 조심 만들고 텍스트 영역
JPanel p = new JPanel();
JTextArea t = new JTextArea("line \n line");
t.addMouseListener(new MyMouseListener());
p.add(t);
jRadioButton1.add(p);
jRadioButton1.addMouseListener(new MyRadioButtonMouseListener());
하고 MyMouseListener 파견 이벤트에 자신의 MouseListener를 추가 할 수 있습니다 은 가능한 경우에도 컨테이너로 사용되는을 의미합니다. 어쨌든 그것을 수행 한 결과는 시각적으로나 행동 적으로 결정되지 않았습니다.
Windows 작업 대화 상자와 비슷한 것을 구현하는 것은 최근에 말한 바 있습니다. 요구 사항에 버튼을 클릭 할 수있게 유지하는 것이 포함되는 경우 (왜 컨테이너로 잘못 사용하는 것입니까? :-) 주요 문제 (레이아웃 분리)는 모든 추가 된 구성 요소를 완전히 마우스 투명하게 만드는 것입니다. 예상보다 어렵습니다. 최소가있는 MouseListener의 추가 허용 MouseEvent는의 수용 사용하지 않도록하는 것입니다 확인은 그럼에도 불구하고 끌어 툴팁
ToolTipManager.sharedInstance().unregisterComponent(area);
area.setDragEnabled(false);
등록을 취소
area.setEditable(false);
area.setFocusable(false);
area.setRequestFocusEnabled(false);
플러스 포커스 아니다
final JTextArea area = new JTextArea("replacement ..") {
@Override
public synchronized void addMouseListener(MouseListener l) {
LOG.info("adding here ...?");
}
@Override
public synchronized void addMouseMotionListener(
MouseMotionListener l) {
}
@Override
public synchronized void addMouseWheelListener(
MouseWheelListener l) {
}
@Override
public void addNotify() {
disableEvents(AWTEvent.MOUSE_EVENT_MASK |
AWTEvent.MOUSE_MOTION_EVENT_MASK |
AWTEvent.MOUSE_WHEEL_EVENT_MASK);
super.addNotify();
}
};
을 플러스 할, 여전히 놀라움이 계속 될지도 모른다. 두번 (즉 비활성화하고 다시 활성화), 내부적으로 할 다시 활성화 다음 된 MouseEvent 전화 : 그래서
area.setAutoscrolls(!area.getAutoscrolls());
을 하루의 끝에, 우리는 멀리 얻을 수 있습니다 -하지만 완전히 확신 할 수 없다 우리는 그 성공했다.
안녕하세요! 신속한 답변을 해주셔서 대단히 감사합니다. 귀하의 솔루션은 완벽하게 작동했습니다! 또한 경고 해 주셔서 감사합니다. 나는 기회를 얻을 때 이것을 시도하고 더 좋은 방법을 찾는다. :) – Zee