⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 constraintspanel.java

📁 swing 教程,与大家分享一下,哈哈,希望大家多多指教
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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 + -