javapanel,javapanel显示中文为方框

本文目录一览:

Java 的Frame和Panel的区别

[Panel]

Panel is the simplest container class. A panel provides space in which an ap

plication can attach any other component, including other panels.

详见java.awt.Panel

注意:以下大写指类,小写泛指对象,比如Frame指Frame类,frame泛指Frame对象。

好象是看出区别了:Frame是Window的子类,一个Frame对象就是一个有标题有边界

的顶层窗口。Panel是最简单的容器类,是Container的子类。一个Panel对象就是要给应

用程序提供空间,用来添加组件,包括其它的Panel对象。

追本溯源,其实Frame和Panel还是有些亲戚关系的:Frame是Window的直接子类,W

indow又是Container的直接子类,而Panel是Container的直接子类,它们都是从Contai

ner里扩展出来的,是叔侄关系。它们的老祖宗是Component(Container是Component的

子类),Component是基类,回溯本源到此为止,已经是根了。

Frame和Panel都是容器类,那么它们在使用上有什么区别呢?

你可以创建一个panel对象,在上面添加组件,比如单独建立一个TestPanel.java

的源文件(TestPanel extends Panel)。但是因为Panel不是顶层容器,所以你不能直

接显示你创建的这个panel对象,必须装在顶层容器里比如嵌入一个frame里,才能显示

。(为什么Frame对象可以直接显示,而Panel对象不能,文章最后有解释。)

Frame是顶层容器,一般不单独使用(注意只是一般,还是可以直接嵌入组件的),而是

习惯在frame里嵌入panel,再在panel上面添加组件。你在用Jbuilder创建一个Applica

tion(比如TestApp和TestAppFrame)的时候,在你的框架文件TestAppFrame里就会自动

生成一个叫contentPane的JPanel对象。

Panel是一般容器,可以自身嵌套(比如在panel1里嵌入panel2);但Frame已经是

顶层容器了,自身不能嵌套。

我们用得最多的JFrame和JPanel,就是Frame和Panel在Swing下的扩展(JFrame是Fr

ame子类和JPanel是Panel的子类)。

我们用Jbuilder创建Application时会自动生成一些代码,其中的frame.pack()一句

是什么意思?注:frame是一个已生成的框架类对象

我们在java.awt.Frame的源文件里找不到pack()方法的定义。看了java.awt.Window

才知

道,原来在Window类里定义了pack()和show()两个显示窗口的方法,被Frame继承了过来

。这可能也是panel无法单独使用的一个原因吧,Panel和它的直接超类Container里,都

没有定义类似pack()和show()的显示容器的方法。

Java 中的panel()面板有什么用,怎么用。

//Jpanel和panel都为中间层容器,可显示文字、图像、绘制图形,主要功能是

在GUI中组织其他组件。但无边框,丌能做独立窗口。 以Jpanel为例,给一个曾经的实例

//MyPanel.java

import java.awt.*;

import javax.swing.*;

import java.util.Random;

public class MyPanel extends JPanel {

private Circle circle[];

public MyPanel() {

setBackground(Color.black);   // 面板背景色

setPreferredSize(new Dimension(600,450));   // 面板大小     

int numCircle=new Random().nextInt(6)+5;

//int numCircle=circle.length;

circle=new Circle[numCircle];

for(int i=0;inumCircle;i++){ // 创建圆的实例

Color color=new Color(new Random().nextInt(256),new Random().nextInt(256),new Random().nextInt(256));

circle[i]=new Circle(new Random().nextInt(50)+10,color,new Random().nextInt(420)+61,new Random().nextInt(320)+61);

}

}

/* 每个JPanel对象都有painComponent方法,绘制添加在容器上的组件, 在

*  组件首次显示或重新显示时被自动调用。

*/

public void paintComponent(Graphics g) {

super.paintComponent(g); 

// 调用父类方法, 清空画布,绘制背景色

setFont(new Font (“Times New Roman”,Font.BOLD,20));   // 设置字体

g.setColor(Color.pink);

g.drawString(“Hello World!”,250,200);

for(int i=0;icircle.length;i++){

circle[i].draw(g);

}

}

}

//Circle.java

import java.awt.*;

/**此类定义了绘制圆的基本方法

*@author  JF

*@version 1.0

*/

public class Circle {

// 直径和圆外接正方形左上角坐标

private int diameter,x,y;

// 指定圆的大小和位置

private Color color;   // 颜色

public Circle(){

}

/**构造函数,设置圆类的属性

*@param int diameter,Color color,int x,int y

*@return none

*/

Circle(int diameter,Color color,int x,int y ){

this.diameter=diameter;

this.color=color;

this.x=x;

this.y=y;

}

/**填充圆类

*@param Graphics

*@return none

*/

public void draw(Graphics g){

g.setColor(color);

g.fillOval(x,y,diameter,diameter);

}

}

//MyCircle.java

import javax.swing.*;

public class MyCircle{

public static void main(String[] args){

JFrame f=new JFrame(“Circle”);

f.setVisible(true);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.getContentPane().add(new MyPanel());

f.pack();

}

}

Java中jpanel与panel有何区别

panel是包java.awt当中的类,Jpanel是包javax.swing当中的类,属于前者的升级。二者在本质上并没有太大的区别。

相对AWT图形用户界面而言,Swing图形用户界面不仅增强了功能,而且减弱了平台相关性,即Swing图形用户界面比AWT图形用户界面可以克服更多的由于操作系统不同所带来的在图形用户界面或交互方式上的差别。

因此建议使用swing当中的JPanel

java关闭Panel

java中关闭Panel,使用dispose方法,实例如下:

import java.awt.Button;

import java.awt.Color;

import javax.swing.JFrame;

import java.awt.Label;

import java.awt.Panel;

import java.awt.TextField;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

public class demo2 implements ActionListener {

JFrame nw= new JFrame(“登录”);

Panel nn=new Panel();

Label a1=new Label(“用户名”);

Label a2=new Label(“密码   “);

TextField b1=new TextField(“name     “);

TextField b2=new TextField(“password”);

Button n1=new Button(“确定”);

public void run(){

nn.add(a1);

nn.add(b1);

nn.add(a2);

b2.setEchoChar(‘*’);

n1.addActionListener(this);

nn.add(b2);

nn.add(n1);

nw.add(nn);

nw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

nw.setBackground(Color.cyan);

nw.setSize(300, 300);

nw.setVisible(true);

}

public static void main(String[] args){

demo2 e1=new demo2();

e1.run();

}

public void actionPerformed(ActionEvent e){

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

JFrame nw1=new JFrame(“信息”);

TextField b3=new TextField(“功能尚未开放”);

nw1.add(b3);

nw1.setSize(200,200);

nw1.setVisible(true);

}

}

}

JAVA中的JPanel怎么使用呢?

使用方法:

JPanel可以为添加到窗体中的轻型控件提供通用的容器。默认情况下,面板容器不会向控件添加任何除自身背景之外的颜色,但是,可以轻松地向其添加边框(borders)并根据需要改制样式。

在大多数Java GUI外观体验(look and feel)中,面板容器默认是不透明。不透明的面板容器跟普通的目录窗格功能差别不大,并且可以有效帮助样式改进。

设置图层管理器

和其他容器(container)一样,面板容器panel也使用布局管理器(Layout Manager)对添加到容器中的组件(compnent)进行定位和设置尺寸大小。

默认情况下,面板容器的布局管理器是FlowLayout(流式布局)类的一个实例,这个类对放置在容器中的空间按行进行布局(从左到右诸行排列)。在创建面板容器时,你可以轻松地使用任何其他

布局管理器通过调用setLayout方法或指定一个布局管理器。

如下是一个在创建面板容器时设置图层管理器的例子:

JPanel p=new JPanel(new BorderLayout());

但这种方法不能用在BoxLayout(盒子布局)中,因为BoxLayout构造器需要一个预留(pre-existing)容器。如下所示:

JPanel p=new JPanel();

p.setLayout(new BoxLayout(p,BoxLayout.PAGE_AXIS));

添加控件

向面板容器中添加组件时使用add()方法,而向add()方法中传递的参数决定于该面板容器使用哪个布局管理器。当所用的布局管理器是FlowLayout,BoxLayout,GridLayout,或SpringLayout时,像通常那样向add()方法传递单一的参数即可,如下所示:

aFlowPanel.add(aComponent);

aFlowPanel.add(anotherComponent);

而当布局管理器为BorderLayout时,还需要提供另一个参数来指定添加到容器中控件的位置,例如:

aBorderPanel.add(aComponent,BorderLayout.CENTER);

aBorderPanel.add(anotherComponent,BorderLayout.PAGE_END);

对于GridBagLayout布局管理器,可以使用上述任一方法,但必须以某种方式对每个组件指定GridBagConstraints,例如:

JPanel pane=new JPanel(new GridBagLayout());

GridBagConstraints c=new GridBagConstraints();

警告

Swing不是线程安全的。

此类的序列化对象与以后的Swing版本不兼容。当前序列化支持适用于短期存储,或适用于在运行相同Swing版本的应用程序之间进行RMI(Remote Method Invocation,远程方法调用)。

扩展资料:

JPanel一个面板也是一个容器JPanel Pan=new JPanel();

Pan.setLayout(null);//设置为空布局也就是自由布局

Pan.add(控件);//添加控件

JPanel是java图形化界面中最常使用的容器。实例:在窗体中添加一个蓝色的面板

//PanelDemo.java

import javax.swing.*;

import java.awt.*;//引入AWT包,因为要使用到颜色类

class PanelDemo{

public static void main(String[]args)throws Exception

{JFrame f=new JFrame(“第一个Java窗口”);

f.setSize(300,200);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setVisible(true);

f.setResizable(false);

f.setLocationRelativeTo(null);

f.setLayout(null);//设置窗体布局为空布局

JPanel p=new JPanel();//实例化一个面板

//设置面板背景色为蓝色,如果不引入AWT包,程序将出错,可以试试看

p.setBackground(Color.BLUE);

p.setSize(100,100);//设置面板对象大小

f.getContentPane().add(p);//将面板添加到窗体中

//如果使用下面添加面板的方法,面板将布满整个窗口,可以试试看

//f.setContentPane(p);

}

}

参考资料:

百度百科——JPanel

如何设置java中panel的大小?

JPanel 和Panel都能调用setPreferredSize(Dimension preferredSize);来设置初始大小。

如果是随窗口变化而变化大小的话,一般不用写,他会根据父组件的大小自动调整大小。如果要特别设置的话,可以addWindowListener来增加窗口监听,通过监听的方式设置。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/232383.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-11 12:50
下一篇 2024-12-11 12:50

相关推荐

  • Python读取中文

    Python是一种高级编程语言,被广泛地应用于各种领域中。而处理中文数据也是其中重要的一部分。本文将介绍在Python中如何读取中文,为大家提供指导和帮助。 一、读取中文文件 在P…

    编程 2025-04-29
  • jQuery Datatable分页中文

    jQuery Datatable是一个非常流行的数据表插件,它可以帮助您快速地在页面上创建搜索、过滤、排序和分页的数据表格。不过,它的默认设置是英文的,今天我们就来探讨如何将jQu…

    编程 2025-04-29
  • Python计算中文字符个数

    本文将从多个方面对Python计算中文字符个数进行详细的阐述,包括字符串长度计算、正则表达式统计和模块使用方法等内容。 一、字符串长度计算 在Python中,计算字符串长度是非常容…

    编程 2025-04-29
  • Python3乱码转中文

    本文将详细介绍如何转换Python3中的乱码为中文字符,帮助Python3开发工程师更好的处理中文字符的问题。 一、Python3中文乱码的原因 在Python3中,中文字符使用的…

    编程 2025-04-29
  • 从16进制转义到中文字符

    16进制转义是为了在不同的字符集、不同的编码下,能够保证特殊字符被正确的识别和渲染。本文将从多个方面对16进制转义做详细的阐述,让读者对其有更深入的了解。 一、转义实现 在Web开…

    编程 2025-04-28
  • opendistroforelasticsearch-kibana的中文应用

    本文将介绍opendistroforelasticsearch-kibana在中文应用中的使用方法和注意事项。 一、安装及配置 1、安装opendistroforelasticse…

    编程 2025-04-28
  • Python IDLE如何设置中文运行环境

    Python IDLE是Python的集成开发环境,使用它可以方便地编写、调试和执行Python程序。但是,默认情况下Python IDLE的运行环境是英文环境,如果需要在Pyth…

    编程 2025-04-27
  • Python 中文转URL编码

    本文将从以下几个方面详细阐述Python中实现中文转URL编码的方法及注意事项。 一、URL编码概述 URL编码也称为百分号编码,是一种将URL中的非ASCII字符转换成“%”后加…

    编程 2025-04-27
  • 如何用Python输出两行中文字符

    在此篇文章中,我们将探讨如何使用Python输出两行中文字符。具体而言,我们将从以下几个方面进行阐述: 一、Python中文输出的基础知识 在开始探讨如何输出中文字符之前,我们需要…

    编程 2025-04-27
  • Python3.8中文文档解读

    Python 是一种解释型语言、面向对象、动态数据类型的高级语言。 本篇文章旨在详细阐述 Python3.8 中文文档,从各个方面深入剖析 Python 的优势,包括基础语法、文件…

    编程 2025-04-25

发表回复

登录后才能评论