JFace에서 Dialog 클래스 사용 방법
창 코드:
4
public class ChooseIntegerDialog extends Dialog {
private String[] possibleIntegerFields;
/**
* checkedIntegerFields is fields separated with comma
*/
private String checkedIntegerFields;
private List<Button> buttonList = new ArrayList<Button>();
public ChooseIntegerDialog(Shell parentShell, String[] possibleIntegerFields) {
super(parentShell);
this.possibleIntegerFields = possibleIntegerFields;
}
@Override
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
newShell.setSize(300, 200);
newShell.setLocation(450, 200);
newShell.setText("Choose Integer Dialog");
}
@Override
protected Control createDialogArea(Composite parent) {
parent.setLayout(new GridLayout(1, false));
new Label(parent, SWT.NONE).setText(" ( )");
for (int i = 0; i < possibleIntegerFields.length; i++) {
Button btn = new Button(parent, SWT.CHECK);
btn.setText(possibleIntegerFields[i]);
buttonList.add(btn);
}
return super.createDialogArea(parent);
}
@Override
protected void okPressed() {
StringBuffer sb = new StringBuffer();
for (Button btn : buttonList) {
if (btn.getSelection()) {
sb.append(btn.getText());
sb.append(",");
}
}
if (sb.length() > 0) {
sb.setLength(sb.length() - 1);
checkedIntegerFields = sb.toString();
}
super.okPressed();
}
public String getCheckedIntegerFields() {
return checkedIntegerFields;
}
}
코드 사용: String[] possibleIntegerFields =
REUtil.getREGroupSet(content, "([_a-zA-Z0-9]+)\\s*(?:=|<>|!=)\\s*'[0-9]+'");
String checkedIntegerFields = null;
ChooseIntegerDialog integerDialog = new ChooseIntegerDialog(sw.getShell(), possibleIntegerFields);
if (integerDialog.open() == Dialog.OK) {
checkedIntegerFields = integerDialog.getCheckedIntegerFields();
}else{
return;
}
다음은 전재 부분입니다.
최근의 작업은 모드화된 대화상자를 필요로 하는데 JFace의Dialog가 제 요구에 딱 맞고 맞춤형으로 제작할 수 있는 부분도 많아서 사용하기에 매우 편리하다는 것을 발견했습니다.다음은 자주 사용하는 방법들이기 때문에 여기에 기록해 두세요.
①제목 표시줄 이름 설정
protected void configureShell(Shell newShell) {
// TODO Auto-generated method stub
super.configureShell(newShell);
newShell.setText("Hello!");
}
② 창 크기 설정
protected Point getInitialSize() {
// TODO Auto-generated method stub
return new Point(300,400);
}
③ 자체 OK, Cancel 버튼 취소
@Override
protected void createButtonsForButtonBar(Composite parent) {
// TODO Auto-generated method stub
}
④ 대화상자에 필요한 컨트롤 정의
@Override
protected Control createDialogArea(Composite parent) {
// TODO Auto-generated method stub
Composite container = new Composite(parent, SWT.NONE);
container.setBounds(0, 0, 300, 400);
Button btn = new Button(container, SWT.NONE);
btn.setBounds(10, 10, 55, 20);
btn.setText("Click!");
// “ ”
btn.addSelectionListener(new SelectionAdapter(){
@Override
public void widgetSelected(SelectionEvent e) {
// TODO Auto-generated method stub
setReturnCode(CANCEL);
close();
}
});
return container;
}
⑤가운데맞춤
이것은 가장 간단합니다. 다이얼로그를 만들 때 부모 창 셸을 지정하면 됩니다.
⑥ 셸 스타일 변경
@Override
protected void setShellStyle(int newShellStyle) {
// TODO Auto-generated method stub
// “X”
super.setShellStyle(newShellStyle ^ SWT.CLOSE);
}
⑥ 사용자 정의 종료 이벤트
@Override
public boolean close() {
// TODO Auto-generated method stub
super.close();
// do something
return true;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Dialog pops up in ApplicationIn the daily development process, it is often necessary to control some information on a global scale. For example, netw...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.