有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java一些Swing组件没有显示在JFrame上

我有个严重的问题。当我尝试在JFrame上添加2个JRadioButtons和一个JLabel时,它不起作用。它们没有显示出来,但其他元素会显示出来

有趣的是,我之前添加的其他组件(也叫jlabel)在JFrame上是可见的

所有swing组件都添加到容器“面板”上,该面板是JFrame的内容窗格

我使用的是JavaDK7U67

下面是代码:(向下滚动到/*此代码不起作用*/

public class UDP_FileTransfer implements KeyListener, Runnable {

JFrame fenster;
Container panel;
JButton startBt, setPathBt;
JTextField portFeld, ipFeld, savePathFeld;
JLabel infoLbl, serverLbl, clientLbl;
JRadioButton server, client;

boolean typeIsServer = true;

int port = 4444;
long size = 0;

boolean serverStarted;

public static void main(String[] args){

    new UDP_FileTransfer();
}

public UDP_FileTransfer(){

    fenster = new JFrame();
    fenster.setLayout(null);
    fenster.addKeyListener(this);
    fenster.setTitle("UDP File Transfer - Server");
    fenster.setLocationRelativeTo(null);
    fenster.setResizable(false);
    fenster.setSize(400,150);

    panel = fenster.getContentPane();
    panel.setLayout(null);
    panel.addKeyListener(this);

    JLabel portLbl = new JLabel("Port: ");
    portLbl.setBounds(10,10, 50,20);
    panel.add(portLbl);

    ...
    ...
    ...

    infoLbl = new JLabel("Status: Starten Sie den Server zuerst!");
    infoLbl.setBounds(10, 70, 371,20);
    infoLbl.setBorder(new LineBorder(Color.black, 1));
    panel.add(infoLbl);

    /* This code doesn't work */

    JLabel typeLbl = new JLabel("Wählen Sie den Typ aus:");
    typeLbl.setBounds(10,125,200,20);
    panel.add(typeLbl);

    client = new JRadioButton("Client");
    client.setBounds(230,125,70,20);
    panel.add(client);

    client = new JRadioButton("Server");
    client.setBounds(320,125,70,20);
    panel.add(client);

    /* End of non-working code */

    fenster.setVisible(true);
    fenster.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

GUI如下所示:Click me

JRadioButtons客户端&;服务器和JLabeltypeLbl应显示在带有边框的框下

我希望你们中的一个能帮助我


共 (1) 个答案

  1. # 1 楼答案

    首先,您应该将后一个变量更改为server

        client = new JRadioButton("Client");
        client.setBounds(230,125,70,20);
        panel.add(client);
    
        server = new JRadioButton("Server");
        server.setBounds(320,125,70,20);
        panel.add(server);
    

    改变你的镜框尺寸

    frame.setSize(450, 175);