ورود

View Full Version : سوال: تنظیم اندازه ی textarea



ravand
شنبه 25 شهریور 1391, 15:30 عصر
سلام
این کدهای فرمی هست که ساختم:
package testi;
import java.awt.*;
import java.sql.*;
import javax.swing.*;
import java.awt.event.*;


class Main{
public static void main(String[] args){
JFrame f=new JFrame();
JLabel label1=new JLabel("از:");
final JTextField text1=new JTextField(20);
JLabel label2=new JLabel("پسورد:");
final JTextField text2=new JTextField(20);
JLabel label3=new JLabel("به:");
final JTextField text3=new JTextField(20);
JLabel label4=new JLabel("پاپ:");
final JTextField text4=new JTextField(20);
JLabel label5=new JLabel("موضوع:");
final JTextField text5=new JTextField(20);
JLabel label6=new JLabel("متن:");
final JTextArea text6 = new JTextArea(6, 6);

JButton b=new JButton("ارسال");


JPanel p=new JPanel(new GridLayout(10,2));
label1.setComponentOrientation(ComponentOrientatio n.RIGHT_TO_LEFT);
label2.setComponentOrientation(ComponentOrientatio n.RIGHT_TO_LEFT);
label3.setComponentOrientation(ComponentOrientatio n.RIGHT_TO_LEFT);
label4.setComponentOrientation(ComponentOrientatio n.RIGHT_TO_LEFT);
label5.setComponentOrientation(ComponentOrientatio n.RIGHT_TO_LEFT);
label6.setComponentOrientation(ComponentOrientatio n.RIGHT_TO_LEFT);

p.add(text1);
p.add(label1);

p.add(text2);
p.add(label2);

p.add(text3);
p.add(label3);

p.add(text4);
p.add(label4);

p.add(text5);
p.add(label5);

p.add(text6);
p.add(label6);
p.add(b);
f.add(p);
f.setVisible(true);
f.pack();
f.setSize (180, 200);
}
}

این هم تصویری از فرم:
92903
نمیدونم چرا textarea که آخر همه ی تکست ها قرار گرفته ، بزرگ تر از بقیه ی تکست ها نیست . هر کاریش میکنم بزرگتر نمیشه.
متشکرم.

ravand
یک شنبه 26 شهریور 1391, 10:01 صبح
تونستم اسکرول بهش بدم که متن بیشتری توش نوشته بشه ولی اندازه اش هنوز بزرگ نشده:
final JScrollPane pane = new JScrollPane(text6);
در قسمت اضافه کردن هم فقط از خط زیر استفاده میکنیم:
p.add(pane);

spiderman200700
یک شنبه 26 شهریور 1391, 14:32 عصر
دوست عزیز این به خاطر خاصیت GridLayout هست. شما باید از یه Layout دیگه استفاده کنی.
میتونی یه JPanel کلی که شامل BoxLayout عمودی هست داشته باشی و هر سطرت که شامل یه JTextField و JLabel هست رو داخل یه JPanel که شامل BorderLayout هست بذاری.و به JPanel اضافه کنی.


میتونی از SpringLayout هم استفاده کنی.

برای آشنایی بیشتر با Layout ها به این لینک یه سری بزن:
http://java.tadbirpoya.ir/articles/JAVA%20SE/Layout%20Managers.htm

ravand
دوشنبه 27 شهریور 1391, 10:48 صبح
هر کاری کردم که با استفاده از SpringLayout حداقل فرم رو به شکل زیر هم بسازم نشد:
92991
میشه شما یه مثال بذارید؟
الان این کدی هست که من دارم:
package testi;
import java.awt.*;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.SpringLayout;
public class Main {
public static void main(String[] a) {
JFrame frame = new JFrame("SpringLayout");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
Container contentPane = frame.getContentPane();
SpringLayout layout = new SpringLayout();
contentPane.setLayout(layout);
Component Label1 = new JLabel("Name");
Component Text1 = new JTextField(15);
contentPane.add(Label1);
contentPane.add(Text1);

layout.putConstraint(SpringLayout.WEST, Label1, 10,SpringLayout.WEST, contentPane);
layout.putConstraint(SpringLayout.NORTH, Label1, 25,SpringLayout.NORTH, contentPane);
layout.putConstraint(SpringLayout.NORTH, Text1, 25,SpringLayout.NORTH, contentPane);
layout.putConstraint(SpringLayout.WEST, Text1, 20,SpringLayout.EAST, Label1);
frame.setSize(300, 100);
frame.setVisible(true);
}
}
الان میخوام یه برچسب و یک تکست مثل تصویر بالا بهش اضافه کنم نمیشه . وقتی بهش اضافه میکنم به جای اینه تکست و برچسب بعدی زیر تکست و برچسب قبلی قرار بگیره داخلش قرار میگیره.
متشکرم.