2 angel xiaowen Angel_xiaowen 于 2016.03.24 21:31 提问

在线等,为啥我的窗体界面框上现实不了text文本的,代码如下

package sizedFrame;

import java.awt.*;
import javax.swing.*;

public class SizedFrameTest
{
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{

            JFrame frame = new SizedFrame();
           frame.setTitle("SizedFrame");
           frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           frame.setVisible(true);
        }
     });

}
}

@SuppressWarnings("serial")
class SizedFrame extends JFrame
{
public SizedFrame()
{
// get screen dimensions

  Toolkit kit = Toolkit.getDefaultToolkit();
  Dimension screenSize = kit.getScreenSize();
  int screenHeight = screenSize.height;
  int screenWidth = screenSize.width;

  // set frame width, height and let platform pick screen location

  setSize(screenWidth / 2, screenHeight / 2);
  setLocationByPlatform(true);

  // set frame icon

  Image img = new ImageIcon("gdutelc.jpg").getImage();
  setIconImage(img);    

  // set text
   JTextField textField = new JTextField();

  JPanel northPanel = new JPanel();
  northPanel.setLayout(new GridLayout(2, 2));
  northPanel.add(new JLabel("姓名: ", SwingConstants.RIGHT));
  northPanel.add(textField);
  northPanel.add(new JLabel("学号 ", SwingConstants.RIGHT));
  northPanel.add(textField);

}
}

1个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.25 09:18

有两个原因如下:
第一,你的JPanel并没有添加到JFrame的容器内部;第二个原因,你的JFarme没有布局导致元素无法显示。
修正你的SizedFrame()方法如下,一头,一尾分别添加下面两段代码:

 public SizedFrame() {
        //先设置布局,可以容纳多个组件
        setLayout(new BorderLayout());

        ........//中间不变

        //再将JPanel添加到父类容器中
        this.getContentPane().add(northPanel);
    }

这样就能显示组件了,但是组件的布局可能不是那么美观,就要靠你自己调整了。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!