小弟刚学JAVA,请问下JTEXTAREA文本区 有没有让文本向右对齐的方法? 查了API才没找到 所以问问大家,菜鸟问题``````````````` 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 jTextField1.setHorizontalAlignment(jTextField1.RIGHT); 不是 JTextField 是 JTextarea,我需要创建的是文本区,不是文本域 也有,看api不是 JTextField 是 JTextarea 继承JComponet 的方法 setAlignmentX 回复 iooyoo() ( ) 信誉:100 Blog 我刚刚试了这个方法 参数用的是整数 但是没有作用`````````` 还是从最左边开始的 JTextArea不可以除非继承JTextField或者JTextComponent,然后实现Area的功能 import javax.swing.*;import java.awt.*;import java.awt.event.*; public class Counter extends JFrame implements ActionListener{ private JButton[] b=new JButton[17]; private JTextArea t1=new JTextArea(1,26); private JTextArea t2=new JTextArea(2,26); private static double num1=0,num2=0,result=0; private static int k=0; public Counter() { t1.setAlignmentX(1); t1.setAlignmentY(1); t2.setAlignmentX(1); t2.setAlignmentY(1); Container container=getContentPane(); container.setLayout(new BorderLayout()); JPanel p1=new JPanel(); p1.setLayout(new GridLayout(4,4,2,2)); for(int i=0;i<10;i++) { b[i]=new JButton(""+i); } b[10]=new JButton("."); b[11]=new JButton("-"); b[12]=new JButton("*"); b[13]=new JButton("/"); b[14]=new JButton("+"); b[15]=new JButton("="); b[16]=new JButton("Clear"); for(int i=0;i<16;i++) { p1.add(b[i]); } JPanel p3=new JPanel(); p3.setLayout(new BorderLayout()); p3.add(p1,BorderLayout.CENTER); p3.add(b[16],BorderLayout.SOUTH); JPanel p2=new JPanel(); p2.setBackground(Color.blue); t1.setEditable(false); t2.setEditable(false); t1.setFont(new Font("ScanSerif",Font.BOLD,12)); t2.setFont(new Font("ScanSerif",Font.PLAIN,12)); p2.add(t1); container.add(p3,BorderLayout.CENTER); container.add(p2,BorderLayout.NORTH); container.add(t2,BorderLayout.SOUTH); for(int i=0;i<17;i++) {b[i].addActionListener(this);} } public static void main(String[] args) { Counter frame=new Counter(); frame.setTitle("counter"); frame.pack(); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e) { for(int i=0;i<10;i++) { if(e.getSource()==b[i]) { t1.append(String.valueOf(i)); t2.append(String.valueOf(i)); } } if(e.getSource()==b[10]) { t1.append("."); t2.append("."); } else if(e.getSource()==b[11]) { num1=Double.parseDouble(t1.getText().trim()); t1.setText(" "); t2.append("-"); k=1; } else if(e.getSource()==b[12]) { num1=(Double.parseDouble(t1.getText().trim())); t1.setText(" "); t2.append("*"); k=2; } else if(e.getSource()==b[13]) { num1=(Double.parseDouble(t1.getText().trim())); t1.setText(" "); t2.append("/"); k=3; } else if(e.getSource()==b[14]) { num1=Double.parseDouble(t1.getText().trim()); t1.setText(" "); t2.append("+"); k=4; } else if(e.getSource()==b[15]) { num2=Double.parseDouble(t1.getText().trim()); t1.append("="); t2.append("="); switch(k) { case 1: result=num1-num2;break; case 2: result=num1*num2;break; case 3: result=num1/num2;break; case 4: result=num1+num2;break; } t1.setText(String.valueOf(result)); t2.append(String.valueOf(result)); } else if(e.getSource()==b[16]) { t1.setText("0"); t2.setText("0"); } } }是这个程序````````` 做一个简易的计算器 我想把 t1 向右对齐```本来T1可以用JTextfield 的,但是那样 算法要复杂点````````` 感觉还是用JTextFiled好,因为只要一行吧。JTextarea也是继承JComponet的。 mingyuan0824() ( ) 信誉:100 Blog 恩 用JTextfield 我也实现了````` 不过每次都取要值取出来,再放进去```还要区分小数点``` 我刚学JAVA ,只是试试 能不能用 几种方法实现```` api不提供,可以自己重载,自己写,不过也比较麻烦,如果只是想实现JTextArea的列和行的功能,可以自己继承JTextComponent来做 你可以试试 setComponentOrientation()方法, 文字可以右对齐,不过输入的时候光标有点儿怪。import java.awt.BorderLayout;import java.awt.ComponentOrientation;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTextArea;public class T { public static void main(String[] args) { JTextArea ta = new JTextArea(); ta.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); JScrollPane scrollPane = new JScrollPane(ta); JFrame f = new JFrame(); f.getContentPane().add(scrollPane, BorderLayout.CENTER); f.setSize(200, 200); f.setLocationRelativeTo(null); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); }} 回复gtlang78() ( )我试了 行了```````` 谢谢高人`````` 嘿嘿 关于String字符串的比较。 java.util.Arrays中的一个方法,有问题呀,你们觉得呢? 求MouseListener的一个方法 关于jar打包的问题,在线等! 基础问题,关于交换字符串。 给点ant的下载地址? Help Java Programer! 我只想说一句,java在国内占不占优势 怎样才能把一个放在背后的jfc控件放到前面来,有相应的函数没? 求大神解答我的一个编程疑惑! 求两个日期之间相差几个月,的方法? jdbc自动提交的问题
不是 JTextField 是 JTextarea
继承JComponet 的方法 setAlignmentX
我刚刚试了这个方法 参数用的是整数 但是没有作用`````````` 还是从最左边开始的
除非继承JTextField或者JTextComponent,然后实现Area的功能
import java.awt.*;
import java.awt.event.*; public class Counter extends JFrame implements ActionListener
{
private JButton[] b=new JButton[17];
private JTextArea t1=new JTextArea(1,26);
private JTextArea t2=new JTextArea(2,26);
private static double num1=0,num2=0,result=0;
private static int k=0;
public Counter()
{
t1.setAlignmentX(1);
t1.setAlignmentY(1);
t2.setAlignmentX(1);
t2.setAlignmentY(1);
Container container=getContentPane();
container.setLayout(new BorderLayout());
JPanel p1=new JPanel();
p1.setLayout(new GridLayout(4,4,2,2));
for(int i=0;i<10;i++)
{
b[i]=new JButton(""+i);
}
b[10]=new JButton(".");
b[11]=new JButton("-");
b[12]=new JButton("*");
b[13]=new JButton("/");
b[14]=new JButton("+");
b[15]=new JButton("=");
b[16]=new JButton("Clear");
for(int i=0;i<16;i++)
{
p1.add(b[i]);
}
JPanel p3=new JPanel();
p3.setLayout(new BorderLayout());
p3.add(p1,BorderLayout.CENTER);
p3.add(b[16],BorderLayout.SOUTH);
JPanel p2=new JPanel();
p2.setBackground(Color.blue);
t1.setEditable(false);
t2.setEditable(false);
t1.setFont(new Font("ScanSerif",Font.BOLD,12));
t2.setFont(new Font("ScanSerif",Font.PLAIN,12));
p2.add(t1);
container.add(p3,BorderLayout.CENTER);
container.add(p2,BorderLayout.NORTH);
container.add(t2,BorderLayout.SOUTH);
for(int i=0;i<17;i++)
{b[i].addActionListener(this);}
} public static void main(String[] args)
{
Counter frame=new Counter();
frame.setTitle("counter");
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e)
{
for(int i=0;i<10;i++)
{
if(e.getSource()==b[i])
{
t1.append(String.valueOf(i));
t2.append(String.valueOf(i));
}
}
if(e.getSource()==b[10])
{
t1.append(".");
t2.append(".");
}
else if(e.getSource()==b[11])
{
num1=Double.parseDouble(t1.getText().trim());
t1.setText(" ");
t2.append("-");
k=1;
}
else if(e.getSource()==b[12])
{
num1=(Double.parseDouble(t1.getText().trim()));
t1.setText(" ");
t2.append("*");
k=2;
}
else if(e.getSource()==b[13])
{
num1=(Double.parseDouble(t1.getText().trim()));
t1.setText(" ");
t2.append("/");
k=3;
}
else if(e.getSource()==b[14])
{
num1=Double.parseDouble(t1.getText().trim());
t1.setText(" ");
t2.append("+");
k=4;
}
else if(e.getSource()==b[15])
{
num2=Double.parseDouble(t1.getText().trim());
t1.append("=");
t2.append("=");
switch(k)
{
case 1: result=num1-num2;break;
case 2: result=num1*num2;break;
case 3: result=num1/num2;break;
case 4: result=num1+num2;break;
}
t1.setText(String.valueOf(result));
t2.append(String.valueOf(result));
}
else if(e.getSource()==b[16])
{
t1.setText("0");
t2.setText("0");
}
}
}
是这个程序````````` 做一个简易的计算器 我想把 t1 向右对齐```
本来T1可以用JTextfield 的,但是那样 算法要复杂点`````````
恩 用JTextfield 我也实现了````` 不过每次都取要值取出来,再放进去```还要区分小数点```
我刚学JAVA ,只是试试 能不能用 几种方法实现````
import java.awt.ComponentOrientation;import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;public class T {
public static void main(String[] args) {
JTextArea ta = new JTextArea();
ta.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
JScrollPane scrollPane = new JScrollPane(ta);
JFrame f = new JFrame();
f.getContentPane().add(scrollPane, BorderLayout.CENTER);
f.setSize(200, 200);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
我试了 行了```````` 谢谢高人`````` 嘿嘿