我有9个jbuttons添加到jpanel和面板添加到jscrollpane并将其添加到jframe。从右到左的方向无关的按钮尺寸变化
http://www.pic1.iran-forum.ir/images/up9/95426323683658592564.jpg
当我通过改变框的方向: applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
面板移动到右侧和按钮的尺寸得到了固定,wouldn`t填充面板,但你在图片中看到低于scrolbar是填充面板
http://www.pic1.iran-forum.ir/images/up9/60975202722295688553.jpg
的所有宽度(我用的GridBagLayout添加按钮和borderlayout.center为附加滚动面板)。
是在java中的错误还是?编辑: 其最简单的看法。它有帮助吗?
import java.awt.BorderLayout;
import java.awt.ComponentOrientation;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.*;
public class MyFrame extends JFrame{
private JButton[] arrayButton = new JButton[9];
private JButton btnLeft = new JButton("<");
private JButton btnRight = new JButton(">");
private JScrollPane scpButtons = new JScrollPane();
public MyFrame() {
for (int i = 0; i < arrayButton.length; i++)
arrayButton[i] = new JButton("btn");
JPanel pnlButton = initPnlButton();
scpButtons.setViewportView(pnlButton);
setLayout(new BorderLayout());
add(scpButtons, BorderLayout.CENTER);
// comment it and see the result
applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setExtendedState(JFrame.MAXIMIZED_BOTH);
setVisible(true);
}
private JPanel initPnlButton() {
JPanel pnlButton = new JPanel(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints(0, 0, 1, 1, 1, 1, 10,
1, new Insets(0, 0, 0, 0), 0, 0);
int ind = 0;
int row = 3;
int column = 4;
for (int i = 0; i < row; i++) {
for (int j = 1; j < column; j++) {
gbc.gridx = j;
gbc.gridy = i;
pnlButton.add(arrayButton[ind++], gbc);
}
}
gbc.weightx = 0;
gbc.gridheight = 3;
gbc.gridx = 0;
gbc.gridy = 0;
pnlButton.add(btnLeft, gbc);
gbc.gridx = 4;
gbc.gridy = 0;
pnlButton.add(btnRight, gbc);
pnlButton.setPreferredSize(new Dimension(1000, 700));
return pnlButton;
}
public static void main(String[] args) {
new MyFrame();
}
}
...或者你正在做的事情错了?那么,我会猜测后面的。作为一个建议,考虑发布你的代码的相关部分,或者甚至更好的代码 – Sujay
的[SSCCE](http://sscce.org/)版本@sujay这里是sscce-so? –
1)人们不会收到关于编辑问题的通知。 2)@Sujay没有答应解决问题,只是提供了一些很好的建议。 3)好的SSCCE,+1。 :) –