JAVA面板可以重叠在一起吗?如图所示...

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA面板可以重叠在一起吗?如图所示...相关的知识,希望对你有一定的参考价值。

这个问题倒还有趣,试了一下。

一.如果两个Panel是完全重叠,可以尝试使用布局:CardLayout。如下:
import java.awt.*;
import java.awt.event.*;

public class TestLayout
Frame f;
Panel p,p1,p2;
Button btn;
CardLayout cal;
public TestLayout()
f=new Frame();
p=new Panel();
p1=new Panel();
p1.setBackground(Color.red);

p2=new Panel();
p2.setBackground(Color.green);

btn=new Button("切换");
cal=new CardLayout();

f.setLayout(new BorderLayout());
f.add(btn,BorderLayout.SOUTH);
f.add(p);

p.setLayout(cal);
p.add(p1);
p.add(p2);

f.setSize(300,300);
f.setVisible(true);

//响应关闭
f.addWindowListener(new WindowAdapter()
public void windowClosing(WindowEvent e)
System.exit(0);

);

//用于在p1和p2之间切换
btn.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
cal.previous(p);//或者cal.next(p);可实现在p1,p2之间切换

);


public static void main(String args[])
new TestLayout();


二.部分重叠的情况。用swing的组件来测试,先运行以下程序后,再将程序中://p1.setOpaque(false);这句取消注释后运行。两相对照可得部分重叠的结论。如下:
//TestLayout.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TestLayout
JFrame f;
Container con;
JPanel p1,p2;
public TestLayout()
f=new JFrame();
con=f.getContentPane();
p1=new JPanel();
p2=new JPanel();

f.setSize(300,300);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

con.setLayout(null);//为实现自定义组件的位置和大小,需设置内容面版的布局为空

p1.setBackground(Color.red);
//p1.setOpaque(false);//设置p1为透明的
p1.setBounds(0,0,300,200);//setBounds(int x,int y,int width,int height)方法中四个参数分别为组件的x,y坐标以及宽width和高height
con.add(p1);

p2.setBackground(Color.green);
p2.setBounds(0,100,300,200);
con.add(p2);


public static void main(String args[])
new TestLayout();

参考技术A 是这样的,你在面板上搞一个和面板一样大的JLabel
然后,通过JFileChooser获得路径,利用这个图片的路径,构建一个ImageIcon
最后,根据这个ImageIcon去给JLabel对象setIcon(ImageIcon对象);

具体地:
1.panel.add(label,BorderLayout.CENTER);
2.ImageIcon icon = new ImageIcon(url);
3.label.setIcon(icon);

下面的代码你把 .JPG改成BMP试试看,O(∩_∩)O~
package com.shlq.sample;

import java.awt.BorderLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class ImagePane extends JPanel

JLabel jl = null;
ImageIcon img = null;

public ImagePane()

img = new ImageIcon( "E:\\Picture\\1.jpg ");
jl = new JLabel(img);
this.setLayout(new BorderLayout());
this.add(jl, BorderLayout.CENTER);

public static void main(String[] args)

JFrame test = new JFrame( "Image Pane ");
test.getContentPane().add(new ImagePane());
test.pack();
test.setVisible(true);
test.addWindowListener(new WindowAdapter()

public void windowClosing(WindowEvent e)

System.exit(0);

);


参考技术B 可以
先放一个panel ,把panel的layout设置成null,
在这个panel中按绝对位置放置panel1和panel2

在java中如何设定面板的背景颜色

我们先打开需要设置背景颜色的word文档,打开之后我们可以看到在工具栏有一个“格式”选项,单击该选项,会看到该选项还会下分子选项。

在下分的选项里,我们将鼠标移到“背景”又会下拉选项,这时我们就可以选择我们喜欢的颜色作为背景颜色了,假如你喜欢红色的话,那么单击红色即可。

单击“红色”按钮之后就会出现如图所示啦,这时我们就可以看到word文档的背景变成红色的了。

选择红色之后,我们可以看到红色太刺眼了,那么想选择其他颜色的话该怎么办呢?那么我们继续按照上面的两个步骤来做,只不过在下拉的选项里我们单击“填充效果”按钮。

单击“填充效果”按钮之后会弹出如图对话框,这时我们单击“纹理”按钮。

单击“纹理”按钮之后会弹出如图对话框,这时我们就可以给word文档填充自己喜欢的纹理背景了。

如果你不喜欢纹理背景的话,那么可以单击“图案”按钮选择自己喜欢的图案来做word背景颜色。

如果“图案”里面的图形也不能满足你的话,那么你可以继续单击后方的“图片”按钮。单击之后会出现如图所示,这时我们单击下方的“选择图片”按钮。

单击之后会弹出如图对话框,这时我们可以从自己的电脑里找到自己喜欢的图片来作为word的背景颜色,找到之后单击“插入”按钮即可。

单击“插入”按钮之后会出现如图所示,此时我们单击“确定”按钮。

单击“确定”按钮之后就会出现如下图所示啦,这时我们就可以看出来,这次的背景颜色比第一次的要好看很多。为word添加背景颜色你会了吗?
参考技术A 在jbinit()方法里面写上这一句就行了:
this.getContentPane().setBackground(SystemColor.textText);
其实还有中方法就是当你点击面板的时候那里有个Background属性,里面有几种颜色随便你选择,
就行了
参考技术B panel.setBackground(Color.yellow); 参考技术C 就像这样 例如:
import java.awt.Color;
checkbox1.setBackground(Color.lightGray);

以上是关于JAVA面板可以重叠在一起吗?如图所示...的主要内容,如果未能解决你的问题,请参考以下文章

eclipse的logcat在哪

8080端口被占用

解决node使用中8080端口被占用

eclipse中需要配置环境变量吗

mathtype右上角一撇

jquery ui datetimepicker 可以通过选择格式来更改时间格式吗?如图所示。