2010-05-21 2 views
0

MicroSoft JVM을 사용하여 애플릿을 실행할 때 이상한 문제가 발생했습니다. 대화 상자에 추가 된 4 개의 텍스트 필드가있는 AWT 패널이 있습니다. 텍스트 필드에 10 진수 값을 입력하고 대화 상자를 닫을 때까지 모든 것이 잘됩니다. 대화 상자를 다시 열면 이전 단계에서 입력 한 모든 십진수가있는 패널 안의 텍스트 필드가 이상하게 작동합니다. 텍스트 필드 안의 WHITE 영역과 함께 십진수 값은 왼쪽으로 이동하고 숫자를 숨 깁니다. 텍스트 필드 내부를 클릭하면 정상이됩니다. Panel은 이전에 gridlayout을 가지고 있었고 심지어 gridbaylayout으로 변경하려고 시도했지만 여전히 문제는 지속됩니다.AWT TextField는 MicroSoft JVM에서 이상하게 동작합니다.

참고 : 모든 개발은 그것이 큰 도움이 될 것이 나를 도울 수 있다면 MS JVM

과의 호환성에 JRE1.1에 관한 것이었다된다. 미리 감사드립니다.

public MyPanel(Dialog myDialog) 
{ 
    Panel panel = new Panel(); 
    this.dialog = myDialog; 

//Previous code with grid layout 

/* panel.setLayout(new GridLayout2(4,2,2,2)); 
    panel.add(new Label("Symbol:")); 
     panel.add(symbolField = new TextField("",20)); 
    panel.add(new Label("Quantity:")); 
    panel.add(qtyField = new TextField()); 
    panel.add(new Label("Price per Share:")); 
    panel.add(costField = new TextField()); 
    panel.add(new Label("Date Acquired:")); 
    panel.add(purchaseDate = new TextField());*/ 

    GridBagLayout gridbag = new GridBagLayout(); 
    System.out.println("######## Created New GridBagLayout"); 

    GridBagConstraints constraints = new GridBagConstraints(); 
    panel.setLayout(gridbag); 

    constraints = buildConstraints(constraints, 0, 0, 1, 1, 1.5, 1); 
    constraints.anchor = GridBagConstraints.WEST; 
    constraints.fill = GridBagConstraints.HORIZONTAL; 
    panel.add(new Label("Symbol:"), constraints); 

    constraints = buildConstraints(constraints, 1, 0, 1, 1, 1.5, 1); 
    constraints.anchor = GridBagConstraints.WEST; 
    constraints.fill = GridBagConstraints.HORIZONTAL; 
    panel.add(symbolField = new TextField("",20), constraints); 

    constraints = buildConstraints(constraints, 0, 1, 1, 1, 1.5, 1); 
    constraints.anchor = GridBagConstraints.WEST; 
    constraints.fill = GridBagConstraints.HORIZONTAL; 
    panel.add(new Label("Quantity:"), constraints); 

    constraints = buildConstraints(constraints, 1, 1, 1, 1, 1.5, 1); 
    constraints.anchor = GridBagConstraints.WEST; 
    constraints.fill = GridBagConstraints.HORIZONTAL; 
    panel.add(qtyField = new TextField(), constraints); 

    constraints = buildConstraints(constraints, 0, 2, 1, 1, 1.5, 1); 
    constraints.anchor = GridBagConstraints.WEST; 
    constraints.fill = GridBagConstraints.HORIZONTAL; 
    panel.add(new Label("Price per Share:"), constraints); 

    constraints = buildConstraints(constraints, 1, 2, 1, 1, 1.5, 1); 
    constraints.anchor = GridBagConstraints.WEST; 
    constraints.fill = GridBagConstraints.HORIZONTAL; 
    panel.add(costField = new TextField(), constraints); 

    constraints = buildConstraints(constraints, 0, 3, 1, 1, 1.5, 1); 
    constraints.anchor = GridBagConstraints.WEST; 
    constraints.fill = GridBagConstraints.HORIZONTAL; 
    panel.add(new Label("Date Acquired:"), constraints); 

    constraints = buildConstraints(constraints, 1, 3, 1, 1, 1.5, 1); 
    constraints.anchor = GridBagConstraints.WEST; 
    constraints.fill = GridBagConstraints.HORIZONTAL; 
    panel.add(purchaseDate = new TextField(), constraints); 
.............. 

......... 

} 

답변

0

이 문제에 대한 해결책을 찾았습니다. "확인"을 클릭하면 텍스트 필드 커서 위치를 0으로 놓고이 문제를 해결하는 것으로 보입니다. 코드는 다음과 같습니다 ....

symbolField.setCaretPosition(0); 
qtyField.setCaretPosition(0); 
costField.setCaretPosition(0); 
관련 문제