Java 为什么不';t我的单选按钮&;JLabels显示?
我创建了一个扩展JDialog的组件。它在JScrollPane中创建一个JPanel(大尺寸)。然后我将单选按钮和jlabel添加到JPanel中 两个问题: 1-单选按钮和JLabel不显示。 2-JScrollPane的滚动条不显示 这是我的密码: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
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
代替,应该注意