Java 我的boxLayout组件将从窗口中裁剪
我正在用几个滑块和按钮创建一个视图,但是它被窗口切断了,即使我手动展开窗口也是如此!我使用的是盒子布局,我的朋友也在做同样的任务,但不知怎么的,他的程序允许他安装任意多的滑块,随着他使窗口的高度变小,滑块之间的距离越来越近。然而,即使我打开窗口,大脑也会切断最后三个滑块。代码如下:Java 我的boxLayout组件将从窗口中裁剪,java,swing,layout,layout-manager,boxlayout,Java,Swing,Layout,Layout Manager,Boxlayout,我正在用几个滑块和按钮创建一个视图,但是它被窗口切断了,即使我手动展开窗口也是如此!我使用的是盒子布局,我的朋友也在做同样的任务,但不知怎么的,他的程序允许他安装任意多的滑块,随着他使窗口的高度变小,滑块之间的距离越来越近。然而,即使我打开窗口,大脑也会切断最后三个滑块。代码如下: public PlayerChefView(int belt_size) { this.belt_size = belt_size; listeners = new ArrayList<Che
public PlayerChefView(int belt_size) {
this.belt_size = belt_size;
listeners = new ArrayList<ChefViewListener>();
setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
//setLayout(new GridLayout(10,4));
JLabel colorSelectionLabel = new JLabel("Plate color:", JLabel.CENTER);
add(colorSelectionLabel);
String[] colorSelection = {"Blue", "Red", "Green", "Gold"};
colorBox = new JComboBox(colorSelection);
colorBox.addActionListener(this);
add(colorBox);
JLabel goldPriceLabel = new JLabel("Gold plate price:", JLabel.CENTER);
add(goldPriceLabel);
priceSlider = new JSlider(500, 1000, 750);
Hashtable labelTable = new Hashtable();
labelTable.put(new Integer(500), new JLabel("$5.00"));
labelTable.put(new Integer (600), new JLabel("$6.00"));
labelTable.put(new Integer(700), new JLabel("$7.00"));
labelTable.put(new Integer(800), new JLabel("$8.00"));
labelTable.put(new Integer(900) , new JLabel("$9.00"));
labelTable.put(new Integer(1000), new JLabel("$10.00"));
//slider.setSnapToTicks(true);
priceSlider.setLabelTable(labelTable);
priceSlider.setMajorTickSpacing(100);
priceSlider.setPaintTicks(true);
priceSlider.setPaintLabels(true);
add(priceSlider);
JLabel positionLabel = new JLabel("Plate position:", JLabel.CENTER);
add(positionLabel);
Integer[] positions = new Integer[belt_size];
for (Integer i = 1; i<=belt_size; i++){
positions[i - 1] = i;
}
positionBox = new JComboBox(positions);
positionBox.addActionListener(this);
add(positionBox);
JLabel sashimiOrNigiriLabel = new JLabel("Would you like to make "
+ "Sashimi or Nigiri?", JLabel.CENTER);
add(sashimiOrNigiriLabel);
String[] sashimiOrNigiri = {"Sashimi", "Nigiri" };
sashimiOrNigiriBox = new JComboBox(sashimiOrNigiri);
sashimiOrNigiriBox.addActionListener(this);
add(sashimiOrNigiriBox);
JLabel seafoodTypeLabel = new JLabel("For sashimi or Nigiri ONLY, what seafood?", JLabel.CENTER);
add(seafoodTypeLabel);
String[] seafood = {"Tuna", "Salmon", "Eel",
"Crab", "Shrimp"};
seafoodTypeBox = new JComboBox(seafood);
seafoodTypeBox.addActionListener(this);
add(seafoodTypeBox);
JButton makeSashimiOrNigiri = new JButton("Create sashimi/nigiri!");
//System.out.println(colorBox.getSelectedItem().toString());
makeSashimiOrNigiri.setActionCommand("sashimi/nigiri");
makeSashimiOrNigiri.addActionListener(this);
add(makeSashimiOrNigiri);
JLabel blankLabel = new JLabel("", JLabel.RIGHT);
add(blankLabel);
JLabel avacadoLabel = new JLabel("The following sliders are for rolls only: select avacado amt. (oz.)", JLabel.LEFT);
add(avacadoLabel);
avocadoSlider = new JSlider(JSlider.HORIZONTAL, 0, 150, 0);
amountLabels = new Hashtable();
amountLabels.put(new Integer(0), new JLabel("0.0"));
amountLabels.put(new Integer (25), new JLabel(".25"));
amountLabels.put(new Integer(50), new JLabel(".50"));
amountLabels.put(new Integer(75), new JLabel(".75"));
amountLabels.put(new Integer(100) , new JLabel("1.00"));
amountLabels.put(new Integer(125), new JLabel("1.25"));
amountLabels.put(new Integer(150), new JLabel("1.50"));
avocadoSlider.setLabelTable(amountLabels);
avocadoSlider.setMajorTickSpacing(25);
avocadoSlider.setPaintTicks(true);
avocadoSlider.setPaintLabels(true);
add(avocadoSlider);
JLabel crabLabel = new JLabel("select crab amt. (oz.)", JLabel.LEFT);
add(crabLabel);
crabSlider = new JSlider(JSlider.HORIZONTAL, 0, 150, 0);
crabSlider.setLabelTable(amountLabels);
crabSlider.setMajorTickSpacing(25);
crabSlider.setPaintTicks(true);
crabSlider.setPaintLabels(true);
add(crabSlider);
JLabel eelLabel = new JLabel("select eel amt. (oz.)", JLabel.LEFT);
add(eelLabel);
eelSlider = new JSlider(JSlider.HORIZONTAL, 0, 150, 0);
eelSlider.setLabelTable(amountLabels);
eelSlider.setMajorTickSpacing(25);
eelSlider.setPaintTicks(true);
eelSlider.setPaintLabels(true);
add(eelSlider);
JLabel riceLabel = new JLabel("select rice amt. (oz.)", JLabel.LEFT);
add(riceLabel);
riceSlider = new JSlider(JSlider.HORIZONTAL, 0, 150, 0);
riceSlider.setLabelTable(amountLabels);
riceSlider.setMajorTickSpacing(25);
riceSlider.setPaintTicks(true);
riceSlider.setPaintLabels(true);
add(riceSlider);
JLabel salmonLabel = new JLabel("select salmon amt. (oz.)", JLabel.LEFT);
add(salmonLabel);
salmonSlider = new JSlider(JSlider.HORIZONTAL, 0, 150, 0);
salmonSlider.setLabelTable(amountLabels);
salmonSlider.setMajorTickSpacing(25);
salmonSlider.setPaintTicks(true);
salmonSlider.setPaintLabels(true);
add(salmonSlider);
JLabel seaweedLabel = new JLabel("select seaweed amt. (oz.)", JLabel.LEFT);
add(seaweedLabel);
seaweedSlider = new JSlider(JSlider.HORIZONTAL, 0, 150, 0);
seaweedSlider.setLabelTable(amountLabels);
seaweedSlider.setMajorTickSpacing(25);
seaweedSlider.setPaintTicks(true);
seaweedSlider.setPaintLabels(true);
add(seaweedSlider);
JLabel shrimpLabel = new JLabel("select shrimp amt. (oz.)", JLabel.LEFT);
add(shrimpLabel);
shrimpSlider = new JSlider(JSlider.HORIZONTAL, 0, 150, 0);
shrimpSlider.setLabelTable(amountLabels);
shrimpSlider.setMajorTickSpacing(25);
shrimpSlider.setPaintTicks(true);
shrimpSlider.setPaintLabels(true);
add(shrimpSlider);
JLabel tunaLabel = new JLabel("select tuna amt. (oz.)", JLabel.LEFT);
add(tunaLabel);
tunaSlider = new JSlider(JSlider.HORIZONTAL, 0, 150, 0);
tunaSlider.setLabelTable(amountLabels);
tunaSlider.setMajorTickSpacing(25);
tunaSlider.setPaintTicks(true);
tunaSlider.setPaintLabels(true);
add(tunaSlider);
public PlayerChefView(内部传送带尺寸){
此。皮带尺寸=皮带尺寸;
侦听器=新的ArrayList();
setLayout(新的BoxLayout(这是BoxLayout.Y_轴));
//setLayout(新网格布局(10,4));
JLabel colorSelectionLabel=新的JLabel(“板材颜色:”,JLabel.CENTER);
添加(颜色选择标签);
字符串[]颜色选择={“蓝色”、“红色”、“绿色”、“金色”};
colorBox=新的JComboBox(颜色选择);
colorBox.addActionListener(这个);
添加(颜色框);
JLabel goldPriceLabel=新JLabel(“金盘价格:”,JLabel.CENTER);
添加(goldPriceLabel);
priceSlider=新的JSlider(5001000750);
Hashtable labelTable=新的Hashtable();
labelTable.put(新整数(500),新JLabel($5.00));
labelTable.put(新整数(600),新JLabel($6.00));
labelTable.put(新的整数(700),新的JLabel($7.00));
labelTable.put(新的整数(800),新的JLabel($8.00));
labelTable.put(新整数(900),新JLabel($9.00));
labelTable.put(新整数(1000),新JLabel($10.00));
//slider.setSnapToTicks(真);
价格滑块。可设置标签(可标签);
priceSlider.setMajorTickSpacing(100);
priceSlider.setPaintTicks(true);
priceSlider.setPaintLabels(真);
添加(价格滑块);
JLabel位置标签=新JLabel(“板位置:”,JLabel.中心);
添加(位置标签);
整数[]位置=新整数[皮带大小];
对于(整数i=1;i1)为了更快地获得更好的帮助,请发布一个or。该代码有7个滑块和许多标签。可以使用两个滑块而不使用标签进行复制吗?2)在将它们添加到问题之前,请阅读有用的标签弹出窗口。这个问题与标签无关!3)就屏幕截图而言,可以用以下文字来总结“滑块在GUI的底部被切断了”,但也可以,谢谢,我猜?但不管怎样,我自己弄明白了,我把它切换到网格布局,行位置为0