在提供的代码的JtextArea下的面板中添加按钮

时间:2014-06-06 11:24:08

标签: java swing jtextarea

有人可以告诉我如何在此链接中的TextLine类的txtArea下添加3个按钮:https://stackoverflow.com/a/18780743/3649438

我是GUI编程的新手,我在添加它时遇到了问题。我试图将JButtons添加到pane1或contentPane,但似乎代码会自动调整窗口大小,并且无法添加按钮。我只需要添加简单的JButton,我将使用自己的代码进行编辑。

我可能的解决方案就是以这种方式制作一个按钮(重复每个按钮的程序):

JButton cancelBtn = new JButton("Cancel");

然后以这种方式将其添加到面板中。

cancelBtn.setVisible(true);
contentPane.add(cancelBtn);

但是当我运行它时,它并没有显示它。我尝试了许多其他不同的方法但没有成功。

2 个答案:

答案 0 :(得分:1)

here

阅读布局管理器

运行此代码。它会解决你的问题。但首先阅读Swing的基本教程。

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.SwingConstants;
import javax.swing.JButton;
import javax.swing.JScrollPane;

public class TextLine extends JFrame {

    private JPanel contentPane;


    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    TextLine frame = new TextLine();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public TextLine() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);

        JLabel lblTextLineExample = new JLabel("Text Line Example");
        lblTextLineExample.setHorizontalAlignment(SwingConstants.CENTER);
        contentPane.add(lblTextLineExample, BorderLayout.NORTH);

        JButton btnCancel = new JButton("Cancel");
        contentPane.add(btnCancel, BorderLayout.SOUTH);

        JTextArea textArea = new JTextArea();
        JScrollPane scrollPane = new JScrollPane(textArea, 
                JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, 
                   JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        textArea.setRows(30);
        textArea.setColumns(50);
        TextLineNumber tln1 = new TextLineNumber(textArea);
        scrollPane.setRowHeaderView( tln1 );
        contentPane.add(scrollPane, BorderLayout.CENTER);
        pack();
    }

}

答案 1 :(得分:0)

public test() {
        super("Title");
        JPanel panel = new JPanel();
        add(panel);

        JButton mybutton = new JButton("TEST BUTTON");
        getContentPane().add(mybutton);
    }