我是一名java程序员,我想问一下为什么我的程序无效:
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class Cool extends JFrame{
public void AL(){
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500 , 200);
frame.setVisible(true);
frame.setTitle("Java");
JTextArea textarea = new JTextArea();
textarea.setEditable(false);
textarea.setLineWrap(true);
JTextField field = new JTextField();
field.setText("Hi! This is the text!");
}
}
这是我的主要课程:
@SuppressWarnings("serial")
public class Main {
public static void main(String[] args){
Cool dude = new Cool();
dude.AL();
}
}
它不会显示任何空白的JFrame。它确实给出了标题,但没有任何东西它拥有一切。
答案 0 :(得分:1)
您必须将JTextArea和JTextField添加到JFrame。
答案 1 :(得分:1)
我没有看到您将小部件添加到JFrame
,那么它们为什么会出现?
frame.add(textarea);
frame.add(field);
答案 2 :(得分:1)
您没有将JTextArea
和JTextField
添加到JFrame
。您可以通过继承自Container
的方法add
来完成此操作。根据Java Docs:
将指定的组件追加到此容器的末尾。
<强>代码:强>
frame.add(textarea);
frame.add(field);
答案 3 :(得分:1)
我知道有相同答案的好六个答案:你应该将元素添加到你的框架中。但我还想补充一点,您通常希望将JTextArea
封装在JScrollPane
中,以便您可以编写更多将使用滚动条显示的文本。
您还应该确保使用布局管理器将元素添加到内容窗格中,以便元素按照您期望的方式排列。请查看A Visual Guide to Layout Managers以熟悉可用的布局管理器。另一个流行的布局管理器是MigLayout,虽然它需要一个外部Jar文件。
以下是我的建议的一个简单示例:
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
public class Cool extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private JTextField textField;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Cool frame = new Cool();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public Cool() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
textField = new JTextField();
contentPane.add(textField, BorderLayout.NORTH);
textField.setColumns(30);
JScrollPane scrollPane = new JScrollPane();
contentPane.add(scrollPane, BorderLayout.CENTER);
JTextArea txtrImAText = new JTextArea();
txtrImAText.setRows(10);
txtrImAText.setColumns(30);
scrollPane.setViewportView(txtrImAText);
pack();
}
}
答案 4 :(得分:0)
您忘了将元素添加到框架中:
frame.add(textarea );
frame.add(field);
添加此行,您将看到结果。
答案 5 :(得分:0)
您必须将文本区域和文本字段添加到AL方法中的JFrame
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500 , 200);
frame.setVisible(true);
frame.setTitle("Java");
JTextArea textarea = new JTextArea();
textarea.setEditable(false);
textarea.setLineWrap(true);
JTextField field = new JTextField();
field.setText("Hi! This is the text!");
frame.add(textarea); // <-- here
frame.add(field);
答案 6 :(得分:0)
我没有使用swing,但似乎你必须在你的JFrame框架中添加textarea和field。
在网上看,我看到了这个例子: frame.getContentPane()添加(textarea的);