30/09/2018, 20:24

Làm thế nảo để khi click jbutton thì jpanel sẽ xuất hiện trong jframe?

xin chào mọi người

mọi người ơi, cho em hỏi là làm thế nảo để khi click jbutton thì jpanel sẽ xuất hiện trong jframe vậy

ví dụ như khi click jbutton thì xuất hiện một ô vuông màu xanh (jpanel) và click jbutton tiếp thì sẽ xuất hiện một ô vuông tương tự và nằm kế bên ô vuông đầu tiên

ai có vi dụ về trường hợp này hay tương tự như vậy không?

Đỗ Trung Quân viết 22:34 ngày 30/09/2018

Có nhiều cách.
Thường thì tạo 1 cái Jpanel main, set gribag layout. > tạo đối tượng layout mới trong nut button và add cái jpanel này vào panel main

Nguyễn Văn Khoa viết 22:25 ngày 30/09/2018

anh cho em một code ví dụ được

Đỗ Trung Quân viết 22:39 ngày 30/09/2018

Anh phải đi ăn cơm. Tẹo nữa nha

Đỗ Trung Quân viết 22:27 ngày 30/09/2018
package cpa.frame;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.GridLayout;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import java.awt.CardLayout;
import java.awt.FlowLayout;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Color;
import javax.swing.JLabel;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.border.EtchedBorder;

public class zzzzz {

	private JFrame frame;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					zzzzz window = new zzzzz();
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public zzzzz() {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();
		frame.setBounds(100, 100, 659, 425);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);
		
		JPanel panel = new JPanel();
		panel.setBackground(Color.CYAN);
		panel.setBounds(0, 97, 643, 289);
		frame.getContentPane().add(panel);
		panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
		
		JButton btnNewButton = new JButton("New button");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				JPanel panel_3 = new JPanel();
				panel.add(panel_3);
				panel_3.setBounds(20, 40, 100, 100);
				panel_3.setBackground(Color.red);
			}
		});
		btnNewButton.setBounds(20, 38, 89, 23);
		frame.getContentPane().add(btnNewButton);
		
		JButton btnNewButton_1 = new JButton("New button");
		btnNewButton_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				JPanel panel_4 = new JPanel();
				panel.add(panel_4);
				panel_4.setBounds(120, 40, 100, 100);
				panel_4.setBackground(Color.green);
			}
		});
		btnNewButton_1.setBounds(138, 38, 89, 23);
		frame.getContentPane().add(btnNewButton_1);
		
		JButton btnNewButton_2 = new JButton("New button");
		btnNewButton_2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				JPanel panel_5 = new JPanel();
				panel.add(panel_5);
				panel_5.setBounds(220, 40, 100, 100);
				panel_5.setBackground(Color.yellow);
			}
		});
		btnNewButton_2.setBounds(253, 38, 89, 23);
		frame.getContentPane().add(btnNewButton_2);
		
		JPanel panel_1 = new JPanel();
		panel_1.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
		panel_1.setBackground(Color.YELLOW);
		
		
		JPanel panel_2 = new JPanel();
		panel_2.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
		panel_2.setBackground(Color.GREEN);
		
		
	//	btnNewButton_2.setBounds(276, 21, 89, 23);
		
	}
}
Nguyễn Văn Khoa viết 22:37 ngày 30/09/2018

có trường hợp nào chỉ cần dùng một cái jbutton không anh

Đỗ Trung Quân viết 22:27 ngày 30/09/2018

Gọi jbutton đó trong hàm init trong vòng lặp while

Bài liên quan
0