AR7*_*AR7 2 java swing jscrollpane
谁能告诉我下面的程序有什么问题?我想要适应JScrollPane,JtextArea但当我添加它然后JTextArea是不可见的.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Area extends JFrame
{
private JTextArea ta;
private JTextField tf;
JScrollPane jp;
public Area()
{
super("Text Area");
tf=new JTextField();
tf.setBounds(100,350,300,30);
add(tf);
ta=new JTextArea();
ta.setBounds(100,100,300,200);
jp= new JScrollPane(ta);
add(jp);
setLayout(null);
setSize(500,500);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String...s)
{
new Area();
}
}
Run Code Online (Sandbox Code Playgroud)
tra*_*god 11
我看到几个问题:
不要使用null布局; 使用真实的布局.
默认布局JFrame是BorderLayout; 默认位置是CENTER; 只有一个组件可以一次占据一个位置; 以下示例使用NORTH&CENTER.
使用适当的构造函数参数最初调整文本组件的大小.
只要滚动窗格小于封闭的组件,滚动条就会自动出现; 调整框架大小以查看效果.
如图所示这里,帧的大小是由用于影响较小.
另请参见初始线程.

import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
/** @see https://stackoverflow.com/a/19215436/230513 */
public class Area extends JFrame {
public Area() {
super("Text Area");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextField tf = new JTextField(12);
add(tf, BorderLayout.NORTH);
JTextArea ta = new JTextArea(24, 12);
JScrollPane jp = new JScrollPane(ta);
add(jp, BorderLayout.CENTER);
pack();
// arbitrary size to make vertical scrollbar appear
setSize(240, 240);
setLocationByPlatform(true);
setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Area();
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21939 次 |
| 最近记录: |