私は次のことを達成したいと考えています: 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番目のバージョンのメモ帳にはスクロールバーがありません。その結果、大きなファイルでは機能しません。
また、コンストラクタにはオーバーライド可能なメソッド呼び出しがたくさんあります。私はこれが悪いことを知っている。それについて何をすべきですか?