2016-05-11 21 views
0

私は次のことを達成したいと考えています: JFrameの上部にボタンのパネルがあり、JFrameの残りの部分にJTextAreaがあるサイズ変更可能なJFrameクラスです。メモ帳のように、ドロップダウンメニューの代わりにボタンを表示する必要があります。これまではこれを書くことができましたが、JTextAreaのサイズが正しく変更されていません。Javaのメモ帳クラス

import java.awt.BorderLayout; 
import java.awt.Dimension; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JButton; 
import javax.swing.JDialog; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 
import javax.swing.JTextArea; 

public class TestDialog extends JDialog implements ActionListener { 

    public TestDialog(JFrame parent, String title, String message) { 
     super(parent, title, true);  
     JPanel buttonPanel = new JPanel();   
     JButton buttonOK = new JButton("OK"); 
     buttonPanel.add(buttonOK); 
     buttonOK.addActionListener(this); 
     //Listing 2 goes here 
     add(buttonPanel, BorderLayout.NORTH); 
     setDefaultCloseOperation(DISPOSE_ON_CLOSE); 
     JTextArea myTextArea = new JTextArea(); 
     myTextArea.setText(message); 
     myTextArea.setName(title); 

     myTextArea.setLineWrap(true); 
     myTextArea.setWrapStyleWord(true); 

     JScrollPane myScrollBar = new JScrollPane(myTextArea, 
       JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, 
       JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); 
     add(myScrollBar, BorderLayout.SOUTH); 
     setPreferredSize(new Dimension(1100, 800)); 
     pack(); 
     setLocationRelativeTo(null); 
     setVisible(true); 
    } 

    public void actionPerformed(ActionEvent e) { 
     setVisible(false);   
     dispose(); 
    } 
} 

これらの2つの最も近いヒットしている:(JTextArea on JPanel inside JScrollPane does not resize properly)及び(http://www1.cs.columbia.edu/~swapneel/1007/Notepad.java)しかし、最初のケースではJTextAreaには、すべてのテキストではなく、利用可能なすべてのJFrameのスペースに合わせてサイズを変更します。 2番目のバージョンのメモ帳にはスクロールバーがありません。その結果、大きなファイルでは機能しません。

また、コンストラクタにはオーバーライド可能なメソッド呼び出しがたくさんあります。私はこれが悪いことを知っている。それについて何をすべきですか?

答えて