간단한 GUI (이클립스에서 windowbuilder로 생성)를 그리려하고 있는데, 두 개의 단추와 스크롤 가능한 텍스트 영역이 필요합니다. 나는 달성하기 위해 다음 코드를 생성 한 위 :java.awt.Container.checkNotAWindow error in simple gui
public class Main extends JFrame implements ActionListener{
public Font font; //used for the font file
public JTextArea txtDataWillBe;
public Main() throws FontFormatException, IOException{
setTitle("Main title ");
setBounds(100, 100, 1200, 600);
getContentPane().setLayout(null);
txtDataWillBe = new JTextArea();
txtDataWillBe.setText("Your data will display here");
txtDataWillBe.setFont(new Font("Droid Sans", Font.BOLD, 18));
txtDataWillBe.setEditable(false);
txtDataWillBe.setColumns(1);
txtDataWillBe.setBounds(0, 40, 919, 484);
getContentPane().add(txtDataWillBe);
JButton button = new JButton("CLICK TO OPEN");
button.setBounds(0, 0, 940, 40);
button.setFont(new Font("Coalition", Font.PLAIN, 18));
getContentPane().add(button);
JButton btnPrint = new JButton("PRINT");
btnPrint.setBounds(0, 531, 940, 40);
btnPrint.setFont(new Font("Coalition", Font.PLAIN, 18));
getContentPane().add(btnPrint);
}
private final String JTextFile = null;
JFileChooser chooser;
String choosertitle;
public static File deletefile;
편집 :
public static void main(String s[]) {
JFrame frame = new JFrame("Reader");
Main panel = null;
try {
panel = new Main();
} catch (FontFormatException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
frame.addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
File deleteme = new File (deletefile + "mx.txt");
deleteme.delete();
System.exit(0);
}
}
);
frame.getContentPane().add(panel,"Center");
frame.setSize(panel.getPreferredSize());
frame.setVisible(true);
}
내가 원래 내부 얻을 수있는 가장 좋은 방법이었다 JScrollPane의 (생각의 JTextArea에 있던 내가 작업 원하는 스크롤). JScrollPane이 콘솔 오류를 일으킨다는 생각을 제거했지만 여전히 오류가 발생합니다.
콘솔 출력은 다음과 같습니다
Exception in thread "main" java.lang.IllegalArgumentException: adding a window to a container
at java.awt.Container.checkNotAWindow(Container.java:439)
at java.awt.Container.addImpl(Container.java:1035)
at java.awt.Container.add(Container.java:923)
편집 : 홈페이지 위 덧붙였다.
GUI에 무슨 문제가 있습니까?
로드 된 텍스트의 수직 스크롤을 가능하게하려면 JScrollPane 및 JTextArea가 필요합니까?
도움 주셔서 감사합니다.
앤디
편집 :
그래서 내 코드는 지금 읽고 아래 내가 제안에 따라 편집 한 :
이public Main() throws FontFormatException, IOException{
JFrame frame = new JFrame("Reader ");
frame.addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
File deleteme = new File (deletefile + "mx.txt");
deleteme.delete();
System.exit(0);
}
}
);
frame.getContentPane().add(panel,"Center");
frame.setSize(getPreferredSize());
frame.setVisible(true);
코드의 나머지 부분은 이전하지만 모든 I가 표시지고 있어요 내 구성 요소가없는 빈 회색 프레임입니다 (비록 모두가 windowbuilder에 표시되어 있음).
지속적인 도움에 감사드립니다.
샘플은 메인에 표시되지 않지만 다른 프레임이나 대화 상자에 프레임을 추가하고있는 것으로 보입니다. –
관련 없음 : 구성 요소의 수동 크기 조정/위치 지정을 절대하지 마십시오. 대신 적절한 LayoutManager를 사용하십시오. – kleopatra
감사합니다. 내가 물건을 지정하는 내 방식으로 문제가 짐작하면 사용자가 최대화하면 아무 것도 올바르게 그릴 수 없다는 것입니다. 나는 상대적 레이아웃을 얻지 못했고 대신 절대적으로 갔다. – andy