请问如果控制JTextArea,使其弹出的时候窗口不超过屏幕之外。
8条回答 默认 最新
- clxy大叔 2013-04-18 18:10关注
简单的例子
[code="java"]
import java.awt.BorderLayout;
import java.awt.Frame;
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.JScrollPane;
import javax.swing.JTextArea;public class TextareaTest {
public static void main(String[] args) { final JFrame frame = new JFrame("Textarea"); final JDialog dialog = new TextareaDialog(frame, true); JButton button = new JButton("Click Me!"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { dialog.setLocationRelativeTo(frame); dialog.pack(); dialog.setSize(300, 200); dialog.setVisible(true); } }); frame.getContentPane().add(button, BorderLayout.CENTER); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); frame.pack(); frame.setVisible(true); }
}
class TextareaDialog extends JDialog {
JTextArea textarea = new JTextArea(); public TextareaDialog(Frame owner, boolean modal) { super(owner, modal); // 初始化 setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); setTitle("文本框测试"); // 添加文本框。 textarea.setLineWrap(true); JScrollPane scroll = new JScrollPane(textarea); getContentPane().add(scroll, BorderLayout.CENTER); // ====-------------------------------测试数据。 String text = "长长的测试数据"; for (int i = 0; i <= 1000; i++) { text += "好长"; } textarea.setText(text); }
}
[/code]本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1