📄 constraintspanel.java
字号:
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
class ConstraintsPanel extends JPanel {
AnchorFillWeightPanel afpanel = new AnchorFillWeightPanel();
DisplayAreaPanel dpanel = new DisplayAreaPanel();
PaddingPanel ppanel = new PaddingPanel();
InsetsPanel ipanel = new InsetsPanel();
String dpaneltip = "display area attributes",
afpaneltip = "component attributes",
ppaneltip = "padding";
public ConstraintsPanel() {
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
add(dpanel);
add(Box.createVerticalStrut(15));
add(afpanel);
add(Box.createVerticalStrut(15));
add(ppanel);
add(Box.createVerticalStrut(15));
add(ipanel);
add(Box.createVerticalStrut(15));
}
public void setConstraints(GridBagConstraints gbc) {
afpanel.setAnchor(gbc.anchor);
afpanel.setFill(gbc.fill);
afpanel.setWeightx(new Double(gbc.weightx));
afpanel.setWeighty(new Double(gbc.weighty));
dpanel.setGridx(gbc.gridx);
dpanel.setGridy(gbc.gridy);
dpanel.setGridwidth(gbc.gridwidth);
dpanel.setGridheight(gbc.gridheight);
ppanel.setPadx(gbc.ipadx);
ppanel.setPady(gbc.ipady);
ipanel.setInsetsConstraints(gbc.insets);
}
public GridBagConstraints getConstraints() {
GridBagConstraints gbc = new GridBagConstraints();
gbc.anchor = afpanel.getAnchor();
gbc.fill = afpanel.getFill();
gbc.gridx = dpanel.getGridx();
gbc.gridy = dpanel.getGridy();
gbc.gridwidth = dpanel.getGridwidth();
gbc.gridheight = dpanel.getGridheight();
gbc.weightx = (afpanel.getWeightx()).doubleValue();
gbc.weighty = (afpanel.getWeighty()).doubleValue();
gbc.ipadx = ppanel.getPadx();
gbc.ipady = ppanel.getPady();
gbc.insets = ipanel.getInsetsConstraint();
return gbc;
}
}
class PaddingPanel extends JPanel {
JLabel ipadxLabel = new JLabel("ipadx:"),
ipadyLabel = new JLabel("ipady:");
JTextField ipadxField = new JTextField(3),
ipadyField = new JTextField(3);
int padX, padY;
public PaddingPanel() {
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
setLayout(gbl);
gbc.anchor = GridBagConstraints.NORTHWEST;
add(ipadxLabel, gbc);
add(Box.createHorizontalStrut(10), gbc);
add(ipadxField, gbc);
add(Box.createHorizontalStrut(20), gbc);
add(ipadyLabel, gbc);
add(Box.createHorizontalStrut(10), gbc);
gbc.gridwidth = GridBagConstraints.REMAINDER;
gbc.weightx = 1.0;
add(ipadyField, gbc);
setBorder(new CompoundBorder(
BorderFactory.createTitledBorder("Internal Padding"),
BorderFactory.createEmptyBorder(10,10,10,10)));
}
public void setPadx(int padX) {
ipadxField.setText(Integer.toString(padX));
repaint();
}
public void setPady(int padY) {
ipadyField.setText(Integer.toString(padY));
repaint();
}
public int getPadx() {
return Integer.parseInt(ipadxField.getText());
}
public int getPady() {
return Integer.parseInt(ipadyField.getText());
}
}
class InsetsPanel extends JPanel {
JTextField topField = new JTextField(3),
leftField = new JTextField(3),
bottomField = new JTextField(3),
rightField = new JTextField(3);
public InsetsPanel() {
setLayout(new BorderLayout());
add(topField, "North");
add(leftField, "West");
add(bottomField, "South");
add(rightField, "East");
setBorder(new CompoundBorder(
BorderFactory.createTitledBorder("Insets"),
BorderFactory.createEmptyBorder(10,10,10,10)));
}
public void setInsetsConstraints(Insets insets) {
topField.setText(Integer.toString(insets.top));
leftField.setText(Integer.toString(insets.left));
bottomField.setText(Integer.toString(insets.bottom));
rightField.setText(Integer.toString(insets.right));
}
public Insets getInsetsConstraint() {
return new Insets(
Integer.parseInt(topField.getText()),
Integer.parseInt(leftField.getText()),
Integer.parseInt(bottomField.getText()),
Integer.parseInt(rightField.getText()));
}
void updateInsets() {
}
}
class DisplayAreaPanel extends JPanel {
JLabel gridxLabel = new JLabel("gridx:"),
gridyLabel = new JLabel("gridy:"),
gridwidthLabel = new JLabel("gridwidth:"),
gridheightLabel = new JLabel("gridheight:");
JComboBox gridxCombo = new JComboBox(),
gridyCombo = new JComboBox(),
gridwidthCombo = new JComboBox(),
gridheightCombo = new JComboBox();
private void addToolTips() {
gridxLabel.setToolTipText("grid x");
gridyLabel.setToolTipText("grid y");
gridwidthLabel.setToolTipText("width in grid cells");
gridheightLabel.setToolTipText("height in grid cells");
gridxCombo.setToolTipText("integer value");
gridyCombo.setToolTipText("integer value");
gridwidthCombo.setToolTipText("integer value");
gridheightCombo.setToolTipText("integer value");
}
public DisplayAreaPanel() {
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
setLayout(gbl);
gbc.anchor = GridBagConstraints.NORTHWEST;
gbc.fill = GridBagConstraints.HORIZONTAL;
add(gridxLabel, gbc);
add(Box.createHorizontalStrut(7), gbc);
gbc.gridwidth = GridBagConstraints.REMAINDER;
add(gridxCombo, gbc);
gbc.gridwidth = 1;
add(gridyLabel, gbc);
add(Box.createHorizontalStrut(7), gbc);
gbc.gridwidth = GridBagConstraints.REMAINDER;
add(gridyCombo, gbc);
add(Box.createVerticalStrut(10), gbc);
gbc.gridwidth = 1;
add(gridwidthLabel, gbc);
add(Box.createHorizontalStrut(7), gbc);
gbc.gridwidth = GridBagConstraints.REMAINDER;
add(gridwidthCombo, gbc);
gbc.gridwidth = 1;
add(gridheightLabel, gbc);
add(Box.createHorizontalStrut(7), gbc);
gbc.gridwidth = GridBagConstraints.REMAINDER;
add(gridheightCombo, gbc);
addToolTips();
setBorder(new CompoundBorder(
BorderFactory.createTitledBorder("Display Area"),
BorderFactory.createEmptyBorder(10,10,10,10)));
gridxCombo.addItem("RELATIVE");
gridxCombo.addItem("0");
gridxCombo.addItem("1");
gridxCombo.addItem("2");
gridxCombo.addItem("3");
gridxCombo.addItem("4");
gridxCombo.addItem("5");
gridxCombo.addItem("6");
gridxCombo.addItem("7");
gridxCombo.addItem("8");
gridxCombo.addItem("9");
gridxCombo.addItem("10");
gridyCombo.addItem("RELATIVE");
gridyCombo.addItem("0");
gridyCombo.addItem("1");
gridyCombo.addItem("2");
gridyCombo.addItem("3");
gridyCombo.addItem("4");
gridyCombo.addItem("5");
gridyCombo.addItem("6");
gridyCombo.addItem("7");
gridyCombo.addItem("8");
gridyCombo.addItem("9");
gridyCombo.addItem("10");
gridwidthCombo.addItem("RELATIVE");
gridwidthCombo.addItem("REMAINDER");
gridwidthCombo.addItem("1");
gridwidthCombo.addItem("2");
gridwidthCombo.addItem("3");
gridwidthCombo.addItem("4");
gridwidthCombo.addItem("5");
gridwidthCombo.addItem("6");
gridwidthCombo.addItem("7");
gridwidthCombo.addItem("8");
gridwidthCombo.addItem("9");
gridwidthCombo.addItem("10");
gridheightCombo.addItem("RELATIVE");
gridheightCombo.addItem("REMAINDER");
gridheightCombo.addItem("1");
gridheightCombo.addItem("2");
gridheightCombo.addItem("3");
gridheightCombo.addItem("4");
gridheightCombo.addItem("5");
gridheightCombo.addItem("6");
gridheightCombo.addItem("7");
gridheightCombo.addItem("8");
gridheightCombo.addItem("9");
gridheightCombo.addItem("10");
}
public void setGridx(int gridx) {
if(gridx == GridBagConstraints.RELATIVE)
gridxCombo.setSelectedItem("RELATIVE");
else
gridxCombo.setSelectedIndex(gridx+1);
repaint();
}
public void setGridy(int gridy) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -