렌더링 용 JLatexMath 및 부저 용 jinput을 비롯한 제 학생을위한 MathQuiz를 작성하고 있습니다. 문제는 프로그램을 시작할 때 (매 4 번째와 같이) 때로는 구성 요소가 보이지 않는다는 것입니다. JFrame의 크기를 조정 한 후에 나타납니다. 우선은 jinput 또는 jlatexMath 라이브러리의 버그 생각했지만, 난이 최소한의 코드와 같은 오류를받을 수 있나요 : 코드로 잘못 무엇Java 레이아웃에 구성 요소가 표시되지 않습니다. (가끔)
public class Shell extends JFrame{
private JButton button1;
private JButton button2;
private Formula formula;
public Shell() {
super("blaBla");
this.setSize(800, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
this.setLayout(new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS));
Box b = Box.createHorizontalBox();
button1 = new JButton(" ");
button1.setEnabled(false);
b.add(button1);
b.add(Box.createHorizontalGlue());
button2 = new JButton(" ");
button2.setEnabled(false);
b.add(button2);
add(b);
JPanel formulaPanel = new JPanel();
add(Box.createVerticalStrut(20));
add(formulaPanel);
}
public static void main(String[] args) {
Shell s = new Shell();
}
}
?
글쎄, 스윙에 이상한 문제가 있다면, 문서를주의 깊게 읽고 모든 [Swing code is Event Dispatch Threa d.] (http://docs.oracle.com/javase/tutorial/uiswing/concurrency/dispatch.html) 시작하십시오. – markspace
Ok, 빠른 대답을위한 thx. 추가 할 때 System.out.println (javax.swing.SwingUtilities.isEventDispatchThread()); 생성자에 내가 콘솔에 거짓 가져옵니다. Thread를 EventDispatchThread로 만들려면 어떻게해야합니까? – user3648884
내가 준 링크의 왼쪽에 여러 링크가 있습니다. 모든 문서를 읽는 것이 가장 좋습니다. 그렇지 않으면 무엇을 놓쳤는 지 압니까. [이 링크를 사용해보십시오] (http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html) Java의 동시성에 대한 전체 절을 읽어야합니다. 적어도. (새의 Runnable() { \t \t 공공 무효 실행() { \t \t 새로운 SwingUtilities.invokeLater을 : – markspace