就是这个方法:setAlignmentX(Component.LEFT_ALIGNMENT);你在按钮的点击事件中重新设置area的内容和对齐方式应该就没有问题了

解决方案 »

  1.   

    还是不行,我是对按钮添加的事件监听器
    是不是该对文本域添加事件监听?然后在textChanged(TextEvent e)方法中执行setAlignmentX(Component.LEFT_ALIGNMENT);函数?
      

  2.   

    不会啊,我程序的主要代码:初始化:
            JTextArea textArea=new JTextArea();
            JButton leftButton=new JButton("左对齐");
            JButton centerButton=new JButton("居中对齐");
            JButton rightButton=new JButton("右对齐");为按钮添加事件监听器:
                           leftButton.addActionListener(this);
         centerButton.addActionListener(this);
         rightButton.addActionListener(this);然后,public void actionPerformed(ActionEvent e){
                     Object eventSource = e.getSource();
                     if(eventSource==leftButton){
    textArea.setAlignmentX(textArea.LEFT_ALIGNMENT);
    repaint();
    }else if(eventSource==centerButton){
    textArea.setAlignmentX(textArea.CENTER_ALIGNMENT);
    repaint();
    }
    else if(eventSource==rightButton){
    textArea.setAlignmentX(textArea.RIGHT_ALIGNMENT);
    repaint();
    }
                }上面的代码应该没问题吧?怎么就不行呢?还望高手解答,分不够再加
      

  3.   

    对于是否重绘界面,我两种都试过,当按钮被点击时对文本不产生任何影响,why?
      

  4.   

    首先声明:我不是高手,刚学JAVA两个月。我研究了一个多小时,有了点答案。请问你用的是 JTextField 还是 JTextArea ?
    如果是JTextField 好办,你用setHorizontalAlignment(JTextField.LEFT|JTextField.CENTER|JTextField.RIGHT )方法可以实现。不是你们说的那个setAlignmentX(textArea.CENTER_ALIGNMENT);如果是JTextArea,就没有setHorizontalAlignment(int)这个方法了。有点难办!继续琢磨中
      

  5.   

    我想是没有刷新的原因
    因为
    你使用的方法只是对以后添加的起作用
    比如你使用的像textArea.setAlignmentX(textArea.RIGHT_ALIGNMENT);你不使用在事件中是肯定有效果的
    至于怎么实现你的功能,我也没想到 呵呵
      

  6.   

    我是用的JTextArea,JDK文档明明有setAlignmentX(float)这个方法,而且用法也相当明确。
    alpha15(奥法)朋友所说的不使用在事件中肯定行,但是我想用按钮事件来触发,应该也是一样的实现吧,怎么就不行呢?百思不得其解啊!
    还望有高手来解答~~~~~~~~~~
      

  7.   

    简单例子
    LeftAction中
    {
              String s = jTextArea1.getText();
              //可以判断s是否存在回车或者多次空格.
              jTextArea1.setAlignmentX(jTextArea1.LEFT_ALIGNMENT);
              jTextArea1.setText(s.trim());
              jTextArea1.repaint();
    }
    这样可以保证第一行的平移,但如果存在多行空格,或者回车,要判断S,把S中的空格和回车去掉.
      

  8.   

    右平移和居中就不会了!^-^,这个是取巧.setAlignmentX()好象没有用.学习中...
      

  9.   

    左对齐的,虽然有点笨。和Word的对齐方式一样。
    String s = jTextArea1.getText();
    String newS = "";
    char c = '\n';
    int begin = 0;
    int end = 0;
    for( int i = begin; i < s.length() -1 ; i++ )
    {
            if( s.charAt(i) == c )
            {
                    String tempS = "";
                    end = i;
                    tempS = s.substring(begin,end);
                    newS += tempS.trim() + c;
             }
             begin = end;
    }
    jTextArea1.setText( newS + s.substring(end,s.length()).trim());
      

  10.   

    楼上FrozenTree()朋友的代码能够实现文本左对齐
    不过我没看出来上面代码哪一部分是实现左对齐的?newS变量有一个换行符,能实现换行;
    但是s.substring(end,s.length()).trim()这一句不是很明白,兄弟能不能再说清楚点?
    还有,右对齐和居中对齐是不是一样的思想呢?我想估计和左对齐不同吧另外:我查了一下资料,setAlignmentX(float)方法能实现组件对齐,但不是文本里面的文字对齐,
    比如几个放在面板上的按钮,用setAlignmentX(Component.LEFT_ALIGNMENT)能实现左对齐,但并不是我们所说的文字左对齐。