有人可以告诉我如何在此链接中的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);
但是当我运行它时,它并没有显示它。我尝试了许多其他不同的方法但没有成功。
答案 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);
}