Java 为什么不';t我的单选按钮&;JLabels显示?

Java 为什么不';t我的单选按钮&;JLabels显示?,java,swing,jpanel,jscrollpane,Java,Swing,Jpanel,Jscrollpane,我创建了一个扩展JDialog的组件。它在JScrollPane中创建一个JPanel(大尺寸)。然后我将单选按钮和jlabel添加到JPanel中 两个问题: 1-单选按钮和JLabel不显示。 2-JScrollPane的滚动条不显示 这是我的密码: public class xuggleJOptionPane1 extends JDialog{ Container pane; JPanel paneMain; JLabel ms1; xug

我创建了一个扩展JDialog的组件。它在JScrollPane中创建一个JPanel(大尺寸)。然后我将单选按钮和jlabel添加到JPanel中

两个问题: 1-单选按钮和JLabel不显示。 2-JScrollPane的滚动条不显示

这是我的密码:

public class xuggleJOptionPane1 extends JDialog{  

    Container pane;  
    JPanel paneMain;  
    JLabel ms1;  
    xuggleJOptionPane1 myFrame;  
    JPanel panel;  
    JScrollPane paneScroll;  
    JPanel paneScrollpanel;  

    public xuggleJOptionPane1(JFrame parent, String str, int nf)  
    {  
        super(parent, str);  

        myFrame = this;  
        myFrame.setPreferredSize(new Dimension(400, 160));  
        myFrame.setSize(new Dimension(400, 160));  

        panel = new JPanel();  
        panel.setSize(400, 160);  

        ms1 = new JLabel();  

        paneScroll = new JScrollPane();  

        paneScroll.setPreferredSize(new Dimension(380,100));  

        paneScrollpanel = new JPanel();  

        paneScrollpanel.setPreferredSize(new Dimension(1600, 1600));  
        //if i add this line the whole paneScrollpanel disappears  
        //paneScrollpanel.setSize(1600, 1600);  

        String pl ="";  
        if (nf != 1) pl = "es";  
        String s1 = "We found " + nf + " flux"+pl+". Which one do you wanna choose ?";  

        ms1.setText(s1);  

        ArrayList<JRadioButton> Buttons = new ArrayList<JRadioButton>();  
        ArrayList<JLabel> Labels = new ArrayList<JLabel>();  

        ButtonGroup group = new ButtonGroup();  
        for (int i = 0; i < nf; i++)  
        {  
            Buttons.add(new JRadioButton());  
            Labels.add(new JLabel("test"));  
            paneScrollpanel.add(Buttons.get(i));  
            paneScrollpanel.add(Labels.get(i));  
            group.add(Buttons.get(i));  
        }  
        Buttons.get(0).setSelected(true);  

        paneScroll.add(paneScrollpanel);  
        panel.add(ms1);  
        panel.add(paneScroll);  
        myFrame.add(panel);  

        myFrame.setVisible(true);  
        myFrame.setResizable(false);  
    }  


}  
公共类xuglejoptionpane1扩展JDialog{
集装箱窗格玻璃;
杰帕内尔·帕内曼;
JLabel-ms1;
xugglejoptionpane1myframe;
JPanel小组;
JScrollPane窗格玻璃卷;
JPanel面板;
公共xuggleJOptionPane1(JFrame父对象、字符串str、int-nf)
{  
超级(父母,str);
myFrame=这个;
myFrame.setPreferredSize(新维度(400160));
myFrame.setSize(新尺寸(400160));
panel=新的JPanel();
面板设置尺寸(400160);
ms1=新的JLabel();
paneScroll=新的JScrollPane();
paneScroll.setPreferredSize(新尺寸(380100));
paneScrollpanel=newjpanel();
panescrollmpanel.setPreferredSize(新尺寸(16001600));
//如果我添加这一行,整个窗格滚动面板将消失
//面板滚动面板。设置尺寸(1600、1600);
字符串pl=“”;
如果(nf!=1)pl=“es”;
字符串s1=“我们找到了”+nf+“通量”+pl+”。您想选择哪一个?”;
ms1.setText(s1);
ArrayList按钮=新建ArrayList();
ArrayList标签=新的ArrayList();
ButtonGroup=新建ButtonGroup();
对于(int i=0;i
更改

paneScroll.add(paneScrollpanel); 

当我在这里的时候

这有点毫无意义(IMHO)

你可以用

this.setSize(new Dimension(400, 160)); 

这有点毫无意义

panel.setSize(400, 160); 
布局管理器将自行决定面板的尺寸

您可能还想查看
pack

当然,就我个人而言,我真的,真的不喜欢不能调整大小的帧:p

改变

paneScroll.add(paneScrollpanel); 

当我在这里的时候

这有点毫无意义(IMHO)

你可以用

this.setSize(new Dimension(400, 160)); 

这有点毫无意义

panel.setSize(400, 160); 
布局管理器将自行决定面板的尺寸

您可能还想查看
pack


当然,就我个人而言,我真的,真的不喜欢不能调整大小的帧:p

我现在没有时间回答你的问题,其他人肯定会回答,但我可以告诉你的是,你需要学习Java编码惯例。类以大写开头,局部变量永远不能这样做。因为你没有遵循惯例,像“Buttons.add”(..)这样的行看起来你在使用一个“Buttons”类,使你的代码很难理解。请阅读以下内容:非常感谢你,我以后会这样做!很抱歉命名惯例不好没问题,伙计,我们都是这样开始的;)我现在没有时间回答你的问题,其他人肯定会这样做,但我可以告诉您的是,您需要学习Java编码约定。类以大写开头,局部变量永远不能这样做。因为您没有遵循约定,所以像“Buttons.add”(..)这样的行看起来像是在使用“Buttons”类,使您的代码很难理解。请阅读以下内容:非常感谢您,我以后会这样做!很抱歉命名约定不好没问题,伙计,我们都是这样开始的;)另外,如果我没有使用myFrame.setSize添加行,则框架将被删除small@Jean-FrançoisLEBas如果你喜欢答案,你可以通过按下旁边的复选标记将问题标记为已回答来接受。试着使用
pack
。不要说
panel.setSize(400160)
试着用
preferredSize
代替,如果我没有用myFrame.setSize添加行,应该注意它small@Jean-FrançoisLEBas如果你想知道答案,您可以通过按下旁边的复选标记将问题标记为已回答来接受它。请尝试改用
pack
。不要说
panel.setSize(400160)
试着用
preferredSize
代替,应该注意