【问题标题】:Notepad class in JavaJava中的记事本类
【发布时间】:2016-05-11 22:57:15
【问题描述】:

我想实现以下目标: 一个可调整大小的 JFrame 类,在顶部有一个按钮面板,在 JFrame 的其余部分有一个 JTextArea。它应该看起来很像带有按钮而不是下拉菜单的记事本。到目前为止,我能够写这个,但是 JTextArea 调整大小不正确。

import java.awt.BorderLayout;
import java.awt.Dimension;
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.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class TestDialog extends JDialog implements ActionListener {

    public TestDialog(JFrame parent, String title, String message) {
        super(parent, title, true);     
        JPanel buttonPanel = new JPanel();         
        JButton buttonOK = new JButton("OK"); 
        buttonPanel.add(buttonOK); 
        buttonOK.addActionListener(this);
        //Listing 2 goes here   
        add(buttonPanel, BorderLayout.NORTH);
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        JTextArea myTextArea = new JTextArea();
        myTextArea.setText(message);
        myTextArea.setName(title);

        myTextArea.setLineWrap(true);
        myTextArea.setWrapStyleWord(true);

        JScrollPane myScrollBar = new JScrollPane(myTextArea,
                JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
                JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        add(myScrollBar, BorderLayout.SOUTH);
        setPreferredSize(new Dimension(1100, 800));
        pack();
        setLocationRelativeTo(null);
        setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
        setVisible(false);        
        dispose();
    }
}

这是两个最接近的命中:(JTextArea on JPanel inside JScrollPane does not resize properly) 和 (http://www1.cs.columbia.edu/~swapneel/1007/Notepad.java) 但是,在第一种情况下,JTextArea 仅调整大小以适应所有文本,而不是所有可用的 JFrame 空间。记事本的第二个版本没有滚动条。因此它不适用于大文件。

另外,我有很多“构造函数中的可覆盖方法调用”。我知道这很糟糕。我该怎么办?

【问题讨论】:

    标签: java jframe jtextarea


    【解决方案1】:

    此应用的行为似乎与您描述的一样。 https://docs.oracle.com/javase/tutorial/displayCode.html?code=https://docs.oracle.com/javase/tutorial/uiswing/examples/components/TextDemoProject/src/components/TextDemo.java

    您应该就您看到的警告提出一个新问题,因为它是一个单独的主题,恕我直言。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-11
      • 2013-03-06
      • 2015-12-29
      • 2016-04-28
      相关资源
      最近更新 更多