📄 labeledpairlayout.java
字号:
/** * Copyright 2004 Carlos Silva A. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */package jgantt.view;import java.awt.*;import java.util.*;import javax.swing.*;public class LabeledPairLayout implements LayoutManager{ public static String LABEL="label"; public static String FIELD="field"; Vector labels = new Vector(); Vector fields = new Vector(); int yGap = 2; int xGap = 2; public void addLayoutComponent(String s, Component c) { if (s.equals(LABEL)) { labels.addElement(c); } else { fields.addElement(c); } } public void layoutContainer(Container c) { Insets insets = c.getInsets(); int labelWidth = 0; Enumeration labelIter = labels.elements(); while(labelIter.hasMoreElements()) { JComponent comp = (JComponent)labelIter.nextElement(); labelWidth = Math.max( labelWidth, comp.getPreferredSize().width ); } int yPos = insets.top; Enumeration fieldIter = fields.elements(); labelIter = labels.elements(); while(labelIter.hasMoreElements() && fieldIter.hasMoreElements()) { JComponent label = (JComponent)labelIter.nextElement(); JComponent field = (JComponent)fieldIter.nextElement(); int height = Math.max(label.getPreferredSize().height, field.getPreferredSize().height); label.setBounds( insets.left, yPos, labelWidth, height ); field.setBounds( insets.left + labelWidth + xGap, yPos, c.getSize().width - (labelWidth +xGap + insets.left + insets.right), height ); yPos += (height + yGap); } } public Dimension minimumLayoutSize(Container c) { Insets insets = c.getInsets(); int labelWidth = 0; Enumeration labelIter = labels.elements(); while(labelIter.hasMoreElements()) { JComponent comp = (JComponent)labelIter.nextElement(); labelWidth = Math.max( labelWidth, comp.getPreferredSize().width ); } int yPos = insets.top; labelIter = labels.elements(); Enumeration fieldIter = fields.elements(); while(labelIter.hasMoreElements() && fieldIter.hasMoreElements()) { JComponent label = (JComponent)labelIter.nextElement(); JComponent field = (JComponent)fieldIter.nextElement(); int height = Math.max(label.getPreferredSize().height, field.getPreferredSize().height); yPos += (height + yGap); } return new Dimension( labelWidth * 3 , yPos ); } public Dimension preferredLayoutSize(Container c) { Dimension d = minimumLayoutSize(c); //d.width *= 2; return d; } public void removeLayoutComponent(Component c) { }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -