Java * *@param args */ 公共静态void main(最终字符串[]args){ 新的布局实践(); } 私有类GraphicPanel扩展了JPanel{ @凌驾 公共组件(最终图形g){ 超级组件(g); //给痛苦涂上颜色 g、 setCo

Java * *@param args */ 公共静态void main(最终字符串[]args){ 新的布局实践(); } 私有类GraphicPanel扩展了JPanel{ @凌驾 公共组件(最终图形g){ 超级组件(g); //给痛苦涂上颜色 g、 setCo,java,swing,jframe,Java,Swing,Jframe,* *@param args */ 公共静态void main(最终字符串[]args){ 新的布局实践(); } 私有类GraphicPanel扩展了JPanel{ @凌驾 公共组件(最终图形g){ 超级组件(g); //给痛苦涂上颜色 g、 setColor(Color.BLUE); //对模式使用变量 int x=0; int y=0; //循环模式 while(x import java.awt.*; import java.awt.event.*; import javax.swing

* *@param args */ 公共静态void main(最终字符串[]args){ 新的布局实践(); } 私有类GraphicPanel扩展了JPanel{ @凌驾 公共组件(最终图形g){ 超级组件(g); //给痛苦涂上颜色 g、 setColor(Color.BLUE); //对模式使用变量 int x=0; int y=0; //循环模式 while(x
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class LayoutPractice extends JFrame implements ActionListener {

    //Set up variables
    private JPanel graphic;
    private JPanel under;
    private JButton button;
    private JLabel text;
    private int clicks;

    /**
     * Constructor, sets up GUI
     * 
     */
    public LayoutPractice(){
        //Default JFrame setup
        super("Layout Practice");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Set up the graphic panel
        this.graphic = new JPanel();
        graphic.setPreferredSize(new Dimension(500, 500));

        //Set up the components that go under the graphic
        this.clicks = 0;
        this.button = new JButton("Click for dialog");
        this.text = new JLabel("No Clicks");

        //Set up the under panel, add in the button and label
        this.under = new JPanel();
        under.setLayout(new FlowLayout());
        under.add(button);
        under.add(text);

        //Tell it to react to the button being pressed
        button.addActionListener(this);

        //Set the panels onto the JFrame
        getContentPane().add(graphic, BorderLayout.CENTER);
        getContentPane().add(under, BorderLayout.PAGE_END);

        //Pack and set the JFrame to visible
        pack();
        setVisible(true);
    }

    /**
     * Paints the image displayed on graphic
     * 
     * @param A Graphics object to be worked on
     * 
     */
    public void paint(Graphics g) {
        //Assigns which panel to paint
        graphic.paint(g);
        //Set a color to pains
        g.setColor(Color.BLUE);
        //Use variables for a pattern
        int x = 0;
        int y = 0;
        //Loop for a pattern
        while (x <= 230) {
            //Generates a filled rectangle of the correct size
            g.fillRect(x, y, (500-(2 * x)), (500-(2 * y)));
            //Alternates color
            if (g.getColor() == Color.BLUE) {
                g.setColor(Color.ORANGE.darker());
            }
            else {
                g.setColor(Color.BLUE);
            }
            //Increase variables to reduce rectangle size
            x += 20;
            y += 20;
        }
    }

    /**
     * Tells the GUI what to do when the button is pressed
     * 
     * @param An ActionEvent, specifically the buton being pressed
     */
    public void actionPerformed(ActionEvent event) {
        //Increase the clicks variable
        clicks++;
        //Change/update the JLabel
        text.setText("Clicks: " + clicks);
        //Open a dialog using available tools
        JOptionPane.showMessageDialog(new JFrame(),
                ("Clicks: " + clicks),
                "Click Count",
                JOptionPane.INFORMATION_MESSAGE);
    }

    /**
     * Very simple main, makes a new LayoutPractice
     * 
     * @param args
     */
    public static void main(String[] args) {
        new LayoutPractice();
    }


}
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class LayoutPractice implements ActionListener {
    //Set up variables
    private final JPanel graphic;
    private final JPanel under;
    private final JButton button;
    private final JLabel text;
    private int clicks;

    /**
     * Constructor, sets up GUI
     *
     */
    public LayoutPractice() {
        //Default JFrame setup

        JFrame frame = new JFrame("Layout Practice");

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Set up the graphic panel
        graphic = new GraphicPanel();
        graphic.setPreferredSize(new Dimension(500, 500));

        //Set up the components that go under the graphic
        clicks = 0;
        button = new JButton("Click for dialog");
        text = new JLabel("No Clicks");

        //Set up the under panel, add in the button and label
        under = new JPanel();
        under.setLayout(new FlowLayout());
        under.add(button);
        under.add(text);

        //Tell it to react to the button being pressed
        button.addActionListener(this);

        JPanel mainPanel = new JPanel(new BorderLayout());

        //Set the panels onto the JFrame
        mainPanel.add(graphic, BorderLayout.CENTER);
        mainPanel.add(under, BorderLayout.PAGE_END);

        frame.setContentPane(mainPanel);

        //Pack and set the JFrame to visible
        frame.pack();
        frame.setVisible(true);
    }

    /**
     * Tells the GUI what to do when the button is pressed
     *
     * @param An ActionEvent, specifically the buton being pressed
     */
    public void actionPerformed(final ActionEvent event) {
        //Increase the clicks variable
        clicks++;
        //Change/update the JLabel
        text.setText("Clicks: " + clicks);
        //Open a dialog using available tools
        JOptionPane.showMessageDialog(new JFrame(),
                ("Clicks: " + clicks),
                "Click Count",
                JOptionPane.INFORMATION_MESSAGE);
    }

    /**
     * Very simple main, makes a new LayoutPractice
     *
     * @param args
     */
    public static void main(final String[] args) {
        new LayoutPractice();
    }

    private class GraphicPanel extends JPanel {

        @Override
        public void paintComponent(final Graphics g) {

            super.paintComponent(g);

            //Set a color to pains
            g.setColor(Color.BLUE);
            //Use variables for a pattern
            int x = 0;
            int y = 0;
            //Loop for a pattern
            while (x <= 230) {
                //Generates a filled rectangle of the correct size
                g.fillRect(x, y, (500 - (2 * x)), (500 - (2 * y)));
                //Alternates color
                if (g.getColor() == Color.BLUE) {
                    g.setColor(Color.ORANGE.darker());
                } else {
                    g.setColor(Color.BLUE);
                }
                //Increase variables to reduce rectangle size
                x += 20;
                y += 20;
            }
        }
    }



}