<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FSwing_JFC%2FPanel</id>
		<title>Java/Swing JFC/Panel - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FSwing_JFC%2FPanel"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Swing_JFC/Panel&amp;action=history"/>
		<updated>2026-04-24T07:39:35Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Swing_JFC/Panel&amp;diff=7327&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Swing_JFC/Panel&amp;diff=7327&amp;oldid=prev"/>
				<updated>2010-06-01T06:38:54Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:38, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Swing_JFC/Panel&amp;diff=7326&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Swing_JFC/Panel&amp;diff=7326&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:44Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Determining When a Component Is Added or Removed from a Container ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.event.ContainerAdapter;&lt;br /&gt;
import java.awt.event.ContainerEvent;&lt;br /&gt;
import java.awt.event.ContainerListener;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main() {&lt;br /&gt;
    ContainerListener listener = new ContainerAdapter() {&lt;br /&gt;
      public void componentAdded(ContainerEvent evt) {&lt;br /&gt;
        &lt;br /&gt;
        Component c = evt.getChild();&lt;br /&gt;
      }&lt;br /&gt;
      public void componentRemoved(ContainerEvent evt) {&lt;br /&gt;
        &lt;br /&gt;
        Component c = evt.getChild();&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    JFrame frame = new JFrame();&lt;br /&gt;
    frame.addContainerListener(listener);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Getting the Child Components of a Container ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.Rectangle;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main() {&lt;br /&gt;
    JFrame container = new JFrame();&lt;br /&gt;
    Component[] components = container.getComponents();&lt;br /&gt;
    for (int i = 0; i &amp;lt; components.length; i++) {&lt;br /&gt;
      Rectangle bounds = components[i].getBounds();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Horizontal Split Pane based on JPanel ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
/* Copyright (c) 2006, 2009, Carl Burch. License information is located in the&lt;br /&gt;
 * com.cburch.logisim.Main source code and at www.cburch.ru/logisim/. */&lt;br /&gt;
 &lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.Container;&lt;br /&gt;
import java.awt.Cursor;&lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Insets;&lt;br /&gt;
import java.awt.LayoutManager;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import java.awt.event.MouseListener;&lt;br /&gt;
import java.awt.event.MouseMotionListener;&lt;br /&gt;
import javax.swing.JComponent;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class HorizontalSplitPane extends JPanel {&lt;br /&gt;
    static final int DRAG_TOLERANCE = 3;&lt;br /&gt;
    private static final Color DRAG_COLOR = new Color(0, 0, 0, 128);&lt;br /&gt;
    abstract static class Dragbar extends JComponent&lt;br /&gt;
        implements MouseListener, MouseMotionListener {&lt;br /&gt;
        private boolean dragging = false;&lt;br /&gt;
        private int curValue;&lt;br /&gt;
        &lt;br /&gt;
        Dragbar() {&lt;br /&gt;
            addMouseListener(this);&lt;br /&gt;
            addMouseMotionListener(this);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        abstract int getDragValue(MouseEvent e);&lt;br /&gt;
        abstract void setDragValue(int value);&lt;br /&gt;
        &lt;br /&gt;
        public void paintComponent(Graphics g) {&lt;br /&gt;
            if(dragging) {&lt;br /&gt;
                g.setColor(DRAG_COLOR);&lt;br /&gt;
                g.fillRect(0, 0, getWidth(), getHeight());&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        public void mouseClicked(MouseEvent e) { }&lt;br /&gt;
        &lt;br /&gt;
        public void mousePressed(MouseEvent e) {&lt;br /&gt;
            if(!dragging) {&lt;br /&gt;
                curValue = getDragValue(e);&lt;br /&gt;
                dragging = true;&lt;br /&gt;
                repaint();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        public void mouseReleased(MouseEvent e) {&lt;br /&gt;
            if(dragging) {&lt;br /&gt;
                dragging = false;&lt;br /&gt;
                int newValue = getDragValue(e);&lt;br /&gt;
                if(newValue != curValue) setDragValue(newValue);&lt;br /&gt;
                repaint();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        public void mouseEntered(MouseEvent e) { }&lt;br /&gt;
        &lt;br /&gt;
        public void mouseExited(MouseEvent e) { }&lt;br /&gt;
        &lt;br /&gt;
        public void mouseDragged(MouseEvent e) {&lt;br /&gt;
            if(dragging) {&lt;br /&gt;
                int newValue = getDragValue(e);&lt;br /&gt;
                if(newValue != curValue) setDragValue(newValue);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        public void mouseMoved(MouseEvent e) { }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    private class MyLayout implements LayoutManager {&lt;br /&gt;
        public void addLayoutComponent(String name, Component comp) { }&lt;br /&gt;
        public void removeLayoutComponent(Component comp) { }&lt;br /&gt;
        public Dimension preferredLayoutSize(Container parent) {&lt;br /&gt;
            if(fraction &amp;lt;= 0.0) return comp1.getPreferredSize();&lt;br /&gt;
            if(fraction &amp;gt;= 1.0) return comp0.getPreferredSize();&lt;br /&gt;
            Insets in = parent.getInsets();&lt;br /&gt;
            Dimension d0 = comp0.getPreferredSize();&lt;br /&gt;
            Dimension d1 = comp1.getPreferredSize();&lt;br /&gt;
            return new Dimension(in.left + Math.max(d0.width, d1.width) + in.right,&lt;br /&gt;
                    in.top + d0.height + d1.height + in.bottom);&lt;br /&gt;
        }&lt;br /&gt;
        public Dimension minimumLayoutSize(Container parent) {&lt;br /&gt;
            if(fraction &amp;lt;= 0.0) return comp1.getMinimumSize();&lt;br /&gt;
            if(fraction &amp;gt;= 1.0) return comp0.getMinimumSize();&lt;br /&gt;
            Insets in = parent.getInsets();&lt;br /&gt;
            Dimension d0 = comp0.getMinimumSize();&lt;br /&gt;
            Dimension d1 = comp1.getMinimumSize();&lt;br /&gt;
            return new Dimension(in.left + Math.max(d0.width, d1.width) + in.right,&lt;br /&gt;
                    in.top + d0.height + d1.height + in.bottom);&lt;br /&gt;
        }&lt;br /&gt;
        public void layoutContainer(Container parent) {&lt;br /&gt;
            Insets in = parent.getInsets();&lt;br /&gt;
            int maxWidth = parent.getWidth() - (in.left + in.right);&lt;br /&gt;
            int maxHeight = parent.getHeight() - (in.top + in.bottom);&lt;br /&gt;
            int split;&lt;br /&gt;
            if(fraction &amp;lt;= 0.0) {&lt;br /&gt;
                split = 0;&lt;br /&gt;
            } else if(fraction &amp;gt;= 1.0) {&lt;br /&gt;
                split = maxWidth;&lt;br /&gt;
            } else {&lt;br /&gt;
                split = (int) Math.round(maxHeight * fraction);&lt;br /&gt;
                split = Math.min(split, maxHeight - comp1.getMinimumSize().height);&lt;br /&gt;
                split = Math.max(split, comp0.getMinimumSize().height);&lt;br /&gt;
            }&lt;br /&gt;
            comp0.setBounds(in.left, in.top,&lt;br /&gt;
                    maxWidth, split);&lt;br /&gt;
            comp1.setBounds(in.left, in.top + split,&lt;br /&gt;
                    maxWidth, maxHeight - split);&lt;br /&gt;
            dragbar.setBounds(in.left, in.top + split - DRAG_TOLERANCE,&lt;br /&gt;
                    maxWidth, 2 * DRAG_TOLERANCE);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    private class MyDragbar extends Dragbar {&lt;br /&gt;
        MyDragbar() {&lt;br /&gt;
            setCursor(Cursor.getPredefinedCursor(Cursor.S_RESIZE_CURSOR));&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        int getDragValue(MouseEvent e) {&lt;br /&gt;
            return getY() + e.getY() - HorizontalSplitPane.this.getInsets().top;&lt;br /&gt;
        }&lt;br /&gt;
    &lt;br /&gt;
        void setDragValue(int value) {&lt;br /&gt;
            Insets in = HorizontalSplitPane.this.getInsets();&lt;br /&gt;
            setFraction((double) value / (HorizontalSplitPane.this.getHeight() - in.bottom - in.top));&lt;br /&gt;
            revalidate();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    private JComponent comp0;&lt;br /&gt;
    private JComponent comp1;&lt;br /&gt;
    private MyDragbar dragbar;&lt;br /&gt;
    private double fraction;&lt;br /&gt;
    &lt;br /&gt;
    public HorizontalSplitPane(JComponent comp0, JComponent comp1) {&lt;br /&gt;
        this(comp0, comp1, 0.5);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public HorizontalSplitPane(JComponent comp0, JComponent comp1,&lt;br /&gt;
            double fraction) {&lt;br /&gt;
        this.rup0 = comp0;&lt;br /&gt;
        this.rup1 = comp1;&lt;br /&gt;
        this.dragbar = new MyDragbar(); // above the other components&lt;br /&gt;
        this.fraction = fraction;&lt;br /&gt;
        setLayout(new MyLayout());&lt;br /&gt;
        add(dragbar); // above the other components&lt;br /&gt;
        add(comp0);&lt;br /&gt;
        add(comp1);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public double getFraction() {&lt;br /&gt;
        return fraction;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setFraction(double value) {&lt;br /&gt;
        if(value &amp;lt; 0.0) value = 0.0;&lt;br /&gt;
        if(value &amp;gt; 1.0) value = 1.0;&lt;br /&gt;
        if(fraction != value) {&lt;br /&gt;
            fraction = value;&lt;br /&gt;
            revalidate();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Panel with background image ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.Dimension;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Image;&lt;br /&gt;
import javax.swing.ImageIcon;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class ImageTest {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    ImagePanel panel = new ImagePanel(new ImageIcon(&amp;quot;images/background.png&amp;quot;).getImage());&lt;br /&gt;
    JFrame frame = new JFrame();&lt;br /&gt;
    frame.getContentPane().add(panel);&lt;br /&gt;
    frame.pack();&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class ImagePanel extends JPanel {&lt;br /&gt;
  private Image img;&lt;br /&gt;
  public ImagePanel(String img) {&lt;br /&gt;
    this(new ImageIcon(img).getImage());&lt;br /&gt;
  }&lt;br /&gt;
  public ImagePanel(Image img) {&lt;br /&gt;
    this.img = img;&lt;br /&gt;
    Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));&lt;br /&gt;
    setPreferredSize(size);&lt;br /&gt;
    setMinimumSize(size);&lt;br /&gt;
    setMaximumSize(size);&lt;br /&gt;
    setSize(size);&lt;br /&gt;
    setLayout(null);&lt;br /&gt;
  }&lt;br /&gt;
  public void paintComponent(Graphics g) {&lt;br /&gt;
    g.drawImage(img, 0, 0, null);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Retrieve all components individually: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JFrame container = new JFrame();&lt;br /&gt;
    // Get number of children&lt;br /&gt;
    int count = container.getComponentCount();&lt;br /&gt;
    for (int i = 0; i &amp;lt; count; i++) {&lt;br /&gt;
      Component c = container.getComponent(i);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>