请教Java Swing中JTextarea问题

问题描述

请问如果控制JTextArea,使其弹出的时候窗口不超过屏幕之外。 问题补充:JtextArea是放在JDialog中,菜鸟不懂,给大家添误会了

解决方案

简单的例子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() {@Overridepublic 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);}}
解决方案二:
不知道提问者到底想问啥。如果是问dialog不位于屏幕中央,就按照我这个设置 this.setResizable(false); this.setSize(300, 150); Dimension lSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension lCsize = this.getSize(); this.setLocation( (int) ( (lSize.getWidth() - lCsize.getWidth()) / 2), (int) ( (lSize.getHeight() - lCsize.getHeight()) / 2));如果是想问JTextArea的问题,那你看看clxy的代码,对JTextArea的知识就有些了解了。
解决方案三:
在JDialog构造方法中加入下面的语句: this.setResizable(false); this.setSize(354, 126); Dimension lSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension lCsize = this.getSize(); this.setLocation( (int) ( (lSize.getWidth() - lCsize.getWidth()) / 2), (int) ( (lSize.getHeight() - lCsize.getHeight()) / 2));
解决方案四:
我表示没看懂。。。。。。JTextArea仅仅是个文本区控件,是需要放到容器中的,怎么会弹出呢?下面回答的增加滚动条,使用mdi我更不理解。。。。。。请详细描述,或者直接贴代码
解决方案五:
这个JTextArea肯定是放在某个container里的,引用弹出的时候窗口不超过屏幕之外所以不应该是控制JTextArea,而应该是控制那个窗口(JFrame或 JWindow),调用setSize()。(除非你们的代码中硬性撑大窗口)如果是要控制JTextArea的尺寸,取决于使用的layout manager.1. 如果使用了,设置setPreferredSize()。2. 如果没有使用layout manager,设置setSize()。建议是两个都设置下。
解决方案六:
获取屏幕比例或者分辨率,动态设置它的大小
解决方案七:
加滚动条http://flyheaven.blog.163.com/blog/static/740117220081114112029469/
解决方案八:
java swing mdi这个可以解决的:http://blog.sina.com.cn/s/blog_6f07b6eb0100oi97.html

时间: 2024-09-20 23:42:26

请教Java Swing中JTextarea问题的相关文章

java swing 把JTextArea导出为图片

Java swing中如何把JTextArea 导出成为一张图片(jpg或png)呢? 核心方法: Java代码   /***           * convert JTextArea to image           * @param ta           * @param destFile           * @param format           */           public static File genericImage(JTextArea ta,Fil

请教下swing中怎么遍历checkbox控件并获取它们的值

问题描述 请教下swing中怎么遍历checkbox控件并获取它们的值 解决方案 解决方案二:什么叫遍历jcheckbox?你的需求或者说你想要达到什么样的目的,现在你又是如何组织的?描述的详细些吧解决方案三:publicstaticArrayList<JCheckBox>getAllJCheckBox(Containerct,ArrayList<JCheckBox>list){if(list==null){list=newArrayList<JCheckBox>();

Java Swing中两种设置背景图(容器图片)

在java swing中需要为容器添加图片,或者背景图片. 提供两种简单的解决方案,一种利用JPanel,另一种利用JLabel 1.JPanel(源代码) [java] view plaincopy package oo;      import java.awt.Graphics;   import java.awt.Image;   import java.io.File;      import javax.swing.ImageIcon;   import javax.swing.JF

java swing中如何为一个窗体添加背景图片

问题描述 java swing中如何为一个窗体添加背景图片 java swing中如何为一个窗体添加背景图片,java swing中如何为一个窗体添加背景图片 解决方案 http://blog.csdn.net/caixiexin/article/details/6608919 解决方案二: 在JFrame中添加JPanel面板,然后就可以设置了.

关于Java Swing中的repaint()方法及setVisible()的问题

问题描述 关于Java Swing中的repaint()方法及setVisible()的问题 我写了一个JFrame, 加了一个JComponent,进行一些处理后使用removeAll()移除了JComponent中的所有组件,然后调用add(JPanel)添加了一个新的组件,最后调用repaint()方法显示这个JPanel 这时发现JPanel无法显示,但调整窗口大小后就能显示 因为调整窗口大小不是会自动调用repaint()方法吗?但是我自己调用了啊为什么不会显示嘞. 接下来, 我在re

按钮-自己参照书本写了一个Java Swing中的容器类入门程序设计,但是运行结果不对,求大神帮帮忙!

问题描述 自己参照书本写了一个Java Swing中的容器类入门程序设计,但是运行结果不对,求大神帮帮忙! /*题目是这样的:创建一个窗体在其中摆放两个内容面板对两个面板进行边框个性化设置.初始状态为第二个面板不可见,当单击第一个面板中的"打开"按钮时,第二个面板即可见:当单击第一个面板中的"关闭"按钮时,第二个面板消失. 以下是我结合书本写的代码,不知道为什么运行不了???*/import javax.swing.*;import java.awt.*;impor

Java swing中Jlist怎么判断里面是否有数据?谢谢

问题描述 Java swing中Jlist怎么判断里面是否有数据?谢谢 因为布局需要,所有我在开始就new了: private DefaultListModel<String> listModel = new DefaultListModel<>();private JList<String> buttonList = new JList<>(listModel); 中间是监听数字按钮,并动态的将按钮上的值放入buttonList. 最后要监听一个MC按钮,

java swing 中事件处理读取参数问题

问题描述 java swing 中事件处理读取参数问题 在MyFrame类中有一个static double[][]二维数组,添加button按钮事件生成一新的类似于Excel窗口,输入数据并存入MyFrame的静态数组中.但是在MyFrame中读取这个数组时总是不能正确地读出输入的数据,而是未初始化时的空数组.请问这是什么问题?应该怎么读呢.

java swing中drawline方法,界面最小化之后线消失的问题

问题描述 java swing中drawline方法,界面最小化之后线消失的问题 我通过Graphics g=getGraphics(); g.setColor(Color.RED); g.drawLine(0,0,100,100); 画线,在点击某个按钮的时候在面板之中动态的画线,但是这样界面最小化之后,刚才画的线就不见了,应该怎么办呢? 解决方案 你的drawLine应该是在按钮响应函数里面写的吧.这时候绘出的图像会在系统重绘时抹去.比如你最小化以后再还原,系统窗口会自动重绘.系统会首先清空