繁体   English   中英

从jtextarea获取文本,将其拆分并将其传递到新行的jlabel?

[英]get text from jtextarea split it and pass it to jlabel on new line?

嗨,朋友们,我是新来的,我在两个类中编写代码,在一个类中,当我们单击按钮时,我声明了一个jtextarea和一个按钮,然后文本将拆分并显示在jlabel中,但是这里的问题是文本是用jtext编写的区域和按钮也可以使用,但是当jlabel框架打开时,这里什么也不显示,这是我的代码。

import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;

public class Try extends JFrame {

    JTextArea text;
    String string;
   public Try(){

 super("survey");
          Container container=getContentPane();
          container.setLayout(new FlowLayout());
          text=new JTextArea();
                text.setLineWrap(true);
        text.setWrapStyleWord(true);
        text.setPreferredSize(new Dimension(350,150));
           string=text.getText();
         JButton showDialogBtn = new JButton("Add Text");
        container.add(text);
        container.add( showDialogBtn);

       showDialogBtn.addActionListener(new ActionListener() {
            @Override
         public void actionPerformed(ActionEvent e) {
     jlabel l=new jlabel();
     l.setSize(700,700);
   l.setVisible(true);          
            }
      });


   }  





    public static void main(String[] args) {
        // TODO code application logic here
        Try t=new Try();
        t.setSize(400,500);
  t.setVisible(true);
    }

    String getArray()
  {
  return  string ;
           }

}

但是第二个类是jlabel类,在这方面没有显示所需的结果plz帮助

import java.awt.Container;
import java.awt.Font;
import javax.swing.*;
 class jlabel extends JFrame {
 Try t=new Try();
   public jlabel(){
          JFrame frame=new JFrame("jlabel");
          JPanel jp1=new JPanel();
   String string=t.getArray();
    String[] labelStrings = string.split(" \\s*");   
     for (String labelString : labelStrings)
    {
      // create JLabels and add
      JLabel label = new JLabel(labelString);
      jp1.add(label);
      frame.add(jp1);

    }



 }
 }

等候回复,谢谢。

第一类很不错,但是“ jLabel”类有很多错误。 请在下面查看有效的一种。

jlabel类中的问题的摘要:

  • 实例化了另一个Try对象,并使用了该实例
  • 即使已经继承了它,您仍在创建一个新的JFrame。
  • 没有布局管理器。

等等...

import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

class Label extends JFrame {

    public Label(String string) {
        super("jlabel");
        JPanel jp1 = new JPanel();
        jp1.setLayout(new BoxLayout(jp1, BoxLayout.Y_AXIS));
        String[] labelStrings = string.split(" \\s*");
        for (String labelString : labelStrings) {
            // create JLabels and add
            JLabel label = new JLabel(labelString);
            jp1.add(label);
        }
        getContentPane().add(jp1);
    }
}

在Try类中,通过以下方式对其进行初始化:

Label l = new Label(text.getText());

问题是您在actionPerformed()方法之外调用了getText()。 该方法在按下按钮时运行,因此如果要获取文本,则应在actionPerformed()中调用方法getText()。

您的代码在运行后立即获取文本,但找不到的一切! 因此,这就是粘贴到JLabel中的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM