java怎么往一个窗口的子窗口中添加组件

java怎么往一个窗口的子窗口中添加组件,第1张

class ChildWindos extends JFrame{

JButton b1

public ChildWindos(){

super("字体")

this.setResizable(false)

this.setVisible(true)

this.setSize(300,300)

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

this.setLayout(null)

b1=new JButton("JBT1")

b1.setSize(100,100)

b1.setLocation(100,100)

this.add(b1)

}

}

你的父窗体怎么加的按钮,子窗体就怎么加,跟那无区别

setBackground设置背景色!

布局随便选,下面程序使用了边框(BorderLayout)和流水(FlowLayout)2种布局方式!

顺便帮你加了一个按钮事件!有问题再追问吧!~

import java.awt.BorderLayout

import java.awt.Color

import java.awt.Container

import java.awt.FlowLayout

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.JPanel

public class Test extends JFrame implements ActionListener {

private JPanel panel0 = null, panel2 = null

private JButton b1 = null, b2 = null, b3 = null, b4 = null

public Test() {

Container c = this.getContentPane()

//边框布局

c.setLayout(new BorderLayout())

//创建panel

panel0 = new JPanel()

panel2 = new JPanel()

//为2个panel设置底色

panel0.setBackground(Color.red)

panel2.setBackground(Color.BLUE)

//2个panel都是用流水布局

panel0.setLayout(new FlowLayout())

panel2.setLayout(new FlowLayout())

//创建按钮

b1 = new JButton("panel2黄色")

b2 = new JButton("panel2绿色")

b3 = new JButton("panel0橙色")

b4 = new JButton("panel0灰色")

/**

* 添加按钮事件

*/

b1.addActionListener(this)

b2.addActionListener(this)

b3.addActionListener(this)

b4.addActionListener(this)

/**

* 将按钮添加相应panel上

*/

panel0.add(b1)

panel0.add(new JLabel())

panel0.add(b2)

panel2.add(b3)

panel2.add(b4)

/**

* 将panel添加到容器

*/

c.add(panel0, BorderLayout.CENTER)

c.add(panel2, BorderLayout.EAST)

this.setSize(500, 500)

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

this.setVisible(true)

}

public static void main(String[] args) {

new Test()

}

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

if (e.getSource() == b1) {

panel2.setBackground(Color.yellow)

} else if (e.getSource() == b2) {

panel2.setBackground(Color.green)

} else if (e.getSource() == b3) {

panel0.setBackground(Color.ORANGE)

} else if (e.getSource() == b4) {

panel0.setBackground(Color.GRAY)

}

}

}

this.getContentPane.add(p,

BorderLayout.CENETR),

而不应该把它写在p.add(b)下面,

因为JPanel是中间容器,必须要先加到窗体等容器才可以向里面添加组件


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11924103.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存