Java by API/javax.swing/JPanel

Материал из Java эксперт
Перейти к: навигация, поиск

extends JPanel

   <source lang="java">
 

import java.awt.Color; import java.awt.Graphics; import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JPanel; public class MainClass extends JPanel {

 Color color;
 public MainClass(Color color) {
   this.color = color;
 }
 public void paintComponent(Graphics g) {
   int width = getWidth();
   int height = getHeight();
   g.setColor(color);
   g.drawOval(0, 0, width, height);
 }
 public static void main(String args[]) {
   JFrame frame = new JFrame("Oval Sample");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   frame.setLayout(new GridLayout(2, 2));
   Color colors[] = { Color.RED, Color.BLUE, Color.GREEN, Color.YELLOW };
   for (int i = 0; i < 4; i++) {
     MainClass panel = new MainClass(colors[i]);
     frame.add(panel);
   }
   frame.setSize(300, 200);
   frame.setVisible(true);
 }

}


 </source>
   
  
 
  



JPanel: addAncestorListener(AncestorListener lis)

   <source lang="java">
 

import javax.swing.JFrame; import javax.swing.event.AncestorEvent; import javax.swing.event.AncestorListener; public class MainClass {

 public static void main(String[] a) {
   JFrame frame = new JFrame("Ancestor Sampler");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   AncestorListener ancestorListener = new AncestorListener() {
     public void ancestorAdded(AncestorEvent ancestorEvent) {
       System.out.println("Added");
     }
     public void ancestorMoved(AncestorEvent ancestorEvent) {
       System.out.println("Moved");
     }
     public void ancestorRemoved(AncestorEvent ancestorEvent) {
       System.out.println("Removed");
     }
   };
   frame.getRootPane().addAncestorListener(ancestorListener);
   frame.setSize(300, 200);
   frame.setVisible(true);
   frame.getRootPane().setVisible(false);
   frame.getRootPane().setVisible(true);
 }

}



 </source>
   
  
 
  



JPanel: addContainerListener(ContainerListener l)

   <source lang="java">
 

import java.awt.event.ContainerEvent; import java.awt.event.ContainerListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class Main {

 public static void main(String[] a) {
   JFrame frame = new JFrame();
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   JPanel buttonPanel = new JPanel();
   buttonPanel.addContainerListener(new ContainerListener() {
     public void componentAdded(ContainerEvent e) {
       displayMessage(" added to ", e);
     }
     public void componentRemoved(ContainerEvent e) {
       displayMessage(" removed from ", e);
     }
     void displayMessage(String action, ContainerEvent e) {
       System.out.println(((JButton) e.getChild()).getText() + " was" + action
           + e.getContainer().getClass().getName());
     }
   });
   buttonPanel.add(new JButton("A"));
   frame.add(buttonPanel);
   frame.setSize(300, 200);
   frame.setVisible(true);
 }

}


 </source>
   
  
 
  



JPanel: addKeyListener(KeyListener l)

   <source lang="java">
 

import java.awt.Container; import java.awt.Graphics; import java.awt.Point; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; import javax.swing.JPanel; public class Main extends JPanel implements KeyListener {

 private Point startPoint = new Point(0, 0);
 private Point endPoint = new Point(0, 0);
 public Main() {
   addKeyListener(this);
 }
 public void keyPressed(KeyEvent evt) {
   int keyCode = evt.getKeyCode();
   int d;
   if (evt.isShiftDown())
     d = 5;
   else
     d = 1;
   if (keyCode == KeyEvent.VK_LEFT)
     add(-d, 0);
   else if (keyCode == KeyEvent.VK_RIGHT)
     add(d, 0);
   else if (keyCode == KeyEvent.VK_UP)
     add(0, -d);
   else if (keyCode == KeyEvent.VK_DOWN)
     add(0, d);
 }
 public void keyReleased(KeyEvent evt) {
 }
 public void keyTyped(KeyEvent evt) {
 }
 public boolean isFocusTraversable() {
   return true;
 }
 public void add(int dx, int dy) {
   endPoint.x += dx;
   endPoint.y += dy;
   Graphics g = getGraphics();
   g.drawLine(startPoint.x, startPoint.y, endPoint.x, endPoint.y);
   g.dispose();
   startPoint.x = endPoint.x;
   startPoint.y = endPoint.y;
 }
 public static void main(String[] args) {
   JFrame frame = new JFrame();
   frame.setTitle("Sketch");
   frame.setSize(300, 200);
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   Container contentPane = frame.getContentPane();
   contentPane.add(new Main());
   frame.setVisible(true);
 }

}


 </source>
   
  
 
  



JPanel: addMouseListener(MouseListener mous)

   <source lang="java">
 

import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JFrame; import javax.swing.JPanel; public class MainClass extends JPanel {

 public MainClass() {
     addMouseListener(new MouseAdapter() { 
         public void mousePressed(MouseEvent me) { 
           System.out.println(me); 
         } 
       }); 
 }
 public static void main(String[] args) {
   JFrame frame = new JFrame();
   frame.getContentPane().add(new MainClass());
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   
   frame.setSize(200, 200);
   frame.setVisible(true);
 }

}


 </source>
   
  
 
  



JPanel: addMouseMotionListener(MouseMotionListener lis)

   <source lang="java">
 

import java.awt.Container; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Point; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import javax.swing.JFrame; import javax.swing.JPanel; public class MainClass {

 public static void main(String[] args) {
   JFrame aWindow = new JFrame();
   aWindow.setBounds(200, 200, 200, 200);
   aWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   Container content = aWindow.getContentPane();
   content.add(new MouseMotionEvents());
   aWindow.setVisible(true);
 }

} class MouseMotionEvents extends JPanel implements MouseListener,

   MouseMotionListener {
 Point p;
 public MouseMotionEvents() {
   addMouseListener(this);
   addMouseMotionListener(this);
 }
 public void mouseClicked(MouseEvent me) {
 }
 public void mouseEntered(MouseEvent me) {
 }
 public void mouseExited(MouseEvent me) {
 }
 public void mousePressed(MouseEvent me) {
   p = me.getPoint();
   repaint();
 }
 public void mouseReleased(MouseEvent me) {
   p = null;
   repaint();
 }
 public void mouseDragged(MouseEvent me) {
   p = me.getPoint();
   repaint();
 }
 public void mouseMoved(MouseEvent me) {
 }
 public void paint(Graphics g) {
   if (p != null) {
     Dimension d = getSize();
     int xc = d.width / 2;
     int yc = d.height / 2;
     g.drawLine(xc, yc, p.x, p.y);
   }
 }

}


 </source>
   
  
 
  



JPanel: getFocusTraversalKeys(int id)

   <source lang="java">
 

import java.awt.AWTKeyStroke; import java.awt.KeyboardFocusManager; import java.util.Set; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.KeyStroke; public class Main {

 public static void main(String[] args) {
   JFrame aWindow = new JFrame("This is a Border Layout");
   aWindow.setBounds(30, 30, 300, 300);
   aWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   JPanel p = new JPanel();
   p.add(new JTextField(10));
   p.add(new JTextField(10));
   p.add(new JTextField(10));
   p.add(new JTextField(10));
   p.add(new JTextField(10));
   p.add(new JTextField(10));
   Set<AWTKeyStroke> set = p.getFocusTraversalKeys(KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS);
   //set = new HashSet(set);
   KeyStroke up = KeyStroke.getKeyStroke("A");
   set.add(up);
   System.out.println(set);
   p.setFocusTraversalKeys(KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS, set);
   aWindow.add(p);
   aWindow.setVisible(true);
 }

}


 </source>
   
  
 
  



JPanel: isFocusCycleRoot()

   <source lang="java">
 

import java.awt.Container; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class Main {

 public static void main(String args[]) {
   JFrame frame = new JFrame("Focus Cycle Sample");
   Container contentPane = frame.getContentPane();
   contentPane.setLayout(new GridLayout(3,3));
   for (int i = 0; i < 8; i++) {
     JButton button = new JButton("" + i);
     contentPane.add(button);
   }
   JPanel panel = new FocusCycleConstrainedJPanel();
   panel.setLayout(new GridLayout(1, 3));
   for (int i = 0; i < 3; i++) {
     JButton button = new JButton("" + (i + 3));
     panel.add(button);
   }
   contentPane.add(panel);
   frame.setSize(300, 200);
   frame.setVisible(true);
 }

} class FocusCycleConstrainedJPanel extends JPanel {

 public boolean isFocusCycleRoot() {
   return true;
 }

}


 </source>
   
  
 
  



JPanel: paintComponent(Graphics g)

   <source lang="java">
 

import java.awt.Color; import java.awt.Graphics; import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JPanel; public class MainClass extends JPanel {

 Color color;
 public MainClass(Color color) {
   this.color = color;
 }
 public void paintComponent(Graphics g) {
   int width = getWidth();
   int height = getHeight();
   g.setColor(color);
   g.drawOval(0, 0, width, height);
 }
 public static void main(String args[]) {
   JFrame frame = new JFrame("Oval Sample");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   frame.setLayout(new GridLayout(2, 2));
   Color colors[] = { Color.RED, Color.BLUE, Color.GREEN, Color.YELLOW };
   for (int i = 0; i < 4; i++) {
     MainClass panel = new MainClass(colors[i]);
     frame.add(panel);
   }
   frame.setSize(300, 200);
   frame.setVisible(true);
 }

}


 </source>
   
  
 
  



JPanel: repaint()

   <source lang="java">
 

import java.awt.Color; import java.awt.Container; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import javax.swing.JFrame; import javax.swing.JPanel; public class MainClass {

 public static void main(String[] args) {
   JFrame aWindow = new JFrame();
   aWindow.setBounds(200, 200, 200, 200);
   aWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   Container content = aWindow.getContentPane();
   content.add(new MouseMotionAdapterDemo());
   aWindow.setVisible(true);
 }

} class MouseMotionAdapterDemo extends JPanel {

 public MouseMotionAdapterDemo() {
   setBackground(Color.white);
   addMouseListener(new Adapter1(this));
   addMouseMotionListener(new Adapter2(this));
 }

} class Adapter1 extends MouseAdapter {

 MouseMotionAdapterDemo mmad;
 public Adapter1(MouseMotionAdapterDemo mmad) {
   this.mmad = mmad;
 }
 public void mouseReleased(MouseEvent me) {
   mmad.setBackground(Color.white);
   mmad.repaint();
 }

} class Adapter2 extends MouseMotionAdapter {

 MouseMotionAdapterDemo mmad;
 public Adapter2(MouseMotionAdapterDemo mmad) {
   this.mmad = mmad;
 }
 public void mouseDragged(MouseEvent me) {
   mmad.setBackground(Color.cyan);
   mmad.repaint();
 }

}


 </source>
   
  
 
  



JPanel: setBackground(Color c)

   <source lang="java">
 

import java.awt.Color; import java.awt.Container; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import javax.swing.JFrame; import javax.swing.JPanel; public class MainClass {

 public static void main(String[] args) {
   JFrame aWindow = new JFrame();
   aWindow.setBounds(200, 200, 200, 200);
   aWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   Container content = aWindow.getContentPane();
   content.add(new MouseMotionAdapterDemo());
   aWindow.setVisible(true);
 }

} class MouseMotionAdapterDemo extends JPanel {

 public MouseMotionAdapterDemo() {
   setBackground(Color.white);
   addMouseListener(new Adapter1(this));
   addMouseMotionListener(new Adapter2(this));
 }

} class Adapter1 extends MouseAdapter {

 MouseMotionAdapterDemo mmad;
 public Adapter1(MouseMotionAdapterDemo mmad) {
   this.mmad = mmad;
 }
 public void mouseReleased(MouseEvent me) {
   mmad.setBackground(Color.white);
   mmad.repaint();
 }

} class Adapter2 extends MouseMotionAdapter {

 MouseMotionAdapterDemo mmad;
 public Adapter2(MouseMotionAdapterDemo mmad) {
   this.mmad = mmad;
 }
 public void mouseDragged(MouseEvent me) {
   mmad.setBackground(Color.cyan);
   mmad.repaint();
 }

}


 </source>
   
  
 
  



JPanel: setBorder(Border border)

   <source lang="java">
 

import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class Main extends JFrame {

 public static void main(String[] args) {
   String lyrics = "<html>Line
line
line</html>"; JPanel panel = new JPanel(); panel.setLayout(new BorderLayout(10, 10)); JLabel label = new JLabel(lyrics); label.setFont(new Font("Georgia", Font.PLAIN, 14)); label.setForeground(new Color(50, 50, 25)); panel.add(label, BorderLayout.CENTER); panel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); JFrame f = new JFrame(); f.add(panel); f.pack(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); }

}


 </source>
   
  
 
  



JPanel: setComponentPopupMenu(JPopupMenu popup)

   <source lang="java">
 

import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JPopupMenu; import javax.swing.JTextArea; import javax.swing.JTextField; public class Main implements ActionListener {

 JTextArea textArea = new JTextArea();
 public Main() {
   final JPopupMenu contextMenu = new JPopupMenu("Edit");
   contextMenu.add(makeMenuItem("Save"));
   contextMenu.add(makeMenuItem("Save As"));
   contextMenu.add(makeMenuItem("Close"));
   JFrame frame = new JFrame();
   JPanel panel = new JPanel();
   panel.setLayout(new BorderLayout());
   frame.add(panel);
   panel.setComponentPopupMenu(contextMenu);
   textArea.setInheritsPopupMenu(true);
   panel.add(BorderLayout.CENTER, textArea);
   JTextField textField = new JTextField();
   textField.setInheritsPopupMenu(true);
   panel.add(BorderLayout.SOUTH, textField);
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   frame.setSize(400, 200);
   frame.setVisible(true);
 }
 public void actionPerformed(ActionEvent e) {
   textArea.append(e.getActionCommand() + "\n");
 }
 private JMenuItem makeMenuItem(String label) {
   JMenuItem item = new JMenuItem(label);
   item.addActionListener(this);
   return item;
 }
 public static void main(String[] args) {
   new Main();
 }

}


 </source>
   
  
 
  



JPanel: setFocusCycleRoot(boolean value)

   <source lang="java">
 

import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class MainClass {

 public static void main(String args[]) {
   JFrame frame = new JFrame("Focus Cycle Sample");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   frame.setLayout(new GridLayout(3,3));
   for (int i = 0; i < 3; i++) {
     JButton button = new JButton("" + i);
     frame.add(button);
   }
   JPanel panel = new JPanel();
   panel.setFocusCycleRoot(true);
   panel.setFocusTraversalPolicyProvider(true);
   panel.setLayout(new GridLayout(1, 3));
   for (int i = 0; i < 3; i++) {
     JButton button = new JButton("" + (i + 3));
     panel.add(button);
   }
   frame.add(panel);
   for (int i = 0; i < 3; i++) {
     JButton button = new JButton("" + (i + 6));
     frame.add(button);
   }
   frame.setSize(300, 200);
   frame.setVisible(true);
 }

}



 </source>
   
  
 
  



JPanel: setFocusTraversalPolicyProvider(boolean value)

   <source lang="java">
 

import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class MainClass {

 public static void main(String args[]) {
   JFrame frame = new JFrame("Focus Cycle Sample");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   frame.setLayout(new GridLayout(3,3));
   for (int i = 0; i < 3; i++) {
     JButton button = new JButton("" + i);
     frame.add(button);
   }
   JPanel panel = new JPanel();
   panel.setFocusCycleRoot(true);
   panel.setFocusTraversalPolicyProvider(true);
   panel.setLayout(new GridLayout(1, 3));
   for (int i = 0; i < 3; i++) {
     JButton button = new JButton("" + (i + 3));
     panel.add(button);
   }
   frame.add(panel);
   for (int i = 0; i < 3; i++) {
     JButton button = new JButton("" + (i + 6));
     frame.add(button);
   }
   frame.setSize(300, 200);
   frame.setVisible(true);
 }

}


 </source>
   
  
 
  



JPanel: setLayout(null)

   <source lang="java">
 

import javax.swing.ButtonGroup; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JRadioButton; public class MainClass extends JPanel {

 public MainClass() {
   JRadioButton radMarriedYes = new JRadioButton("Yes?", true);
   JRadioButton radMarriedNo = new JRadioButton("No?", false);
   JRadioButton radGolfYes = new JRadioButton("Yes?", false);
   JRadioButton radGolfNo = new JRadioButton("No?", true);
   ButtonGroup radioGroup1 = new ButtonGroup();
   ButtonGroup radioGroup2 = new ButtonGroup();
   setLayout(null);
   add(radMarriedYes);
   add(radMarriedNo);
   add(radGolfYes);
   add(radGolfNo);
   radioGroup1.add(radMarriedYes);
   radioGroup1.add(radMarriedNo);
   radioGroup2.add(radGolfYes);
   radioGroup2.add(radGolfNo);
   radMarriedYes.setBounds(30, 50, 50, 20);
   radMarriedNo.setBounds(30, 80, 50, 20);
   radGolfYes.setBounds(150, 50, 50, 20);
   radGolfNo.setBounds(150, 80, 50, 20);
 }
 public static void main(String[] args) {
   JFrame frame = new JFrame();
   frame.getContentPane().add(new MainClass());
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   frame.setSize(200, 200);
   frame.setVisible(true);
 }

}


 </source>
   
  
 
  



JPanel: setOpaque(boolean isOpaque)

   <source lang="java">
 

import java.awt.Color; import java.awt.FlowLayout; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class MainClass extends JFrame {

 public MainClass() {
   super("Opaque JPanel Demo");
   setSize(400, 200);
   setDefaultCloseOperation(EXIT_ON_CLOSE);
   JPanel opaque = createNested(true);
   JPanel notOpaque = createNested(false);
   getContentPane().setLayout(new FlowLayout());
   getContentPane().add(opaque);
   getContentPane().add(notOpaque);
 }
 public static void main(String[] args) {
   MainClass oe = new MainClass();
   oe.setVisible(true);
 }
 public JPanel createNested(boolean opaque) {
   JPanel outer = new JPanel(new FlowLayout());
   JPanel inner = new JPanel(new FlowLayout());
   outer.setBackground(Color.white);
   inner.setBackground(Color.black);
   inner.setOpaque(opaque);
   inner.setBorder(BorderFactory.createLineBorder(Color.gray));
   inner.add(new JButton("Button"));
   outer.add(inner);
   return outer;
 }

}


 </source>
   
  
 
  



JPanel: setPreferredSize(Dimension preferredSize)

   <source lang="java">
 

import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.border.Border; public class Main {

 public static void main(String args[]) {
   JFrame f = new JFrame("Label Demo");
   f.setLayout(new FlowLayout());
   f.setSize(200, 360);
   f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   
   JLabel label= new JLabel("asdf");
   Border border = BorderFactory.createLineBorder(Color.BLACK);
   label.setBorder(border);
   label.setPreferredSize(new Dimension(150, 100));
   f.add(label);
   f.setVisible(true);
 }

}


 </source>
   
  
 
  



JPanel: setToolTipText(String htmlString)

   <source lang="java">
 

import java.awt.BorderLayout; import java.awt.Color; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JToolTip; public class MainClass {

 public static void main(String args[]) {
   JFrame frame = new JFrame("Tooltip");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   JPanel panel = new JPanel();
   panel.setToolTipText("<HtMl>Tooltip
Message"); frame.add(panel, BorderLayout.CENTER); JButton button = new JButton("Hello, World") { public JToolTip createToolTip() { JToolTip tip = super.createToolTip(); tip.setBackground(Color.YELLOW); tip.setForeground(Color.RED); return tip; } public boolean contains(int x, int y) { if (x < 100) { setToolTipText("x < 100"); } else { setToolTipText("else"); } return super.contains(x, y); } }; button.setToolTipText("Hello, World"); frame.add(button, BorderLayout.NORTH); frame.setSize(300, 150); frame.setVisible(true); }

}



 </source>