panel在java中什么意思_JAVA中的JPanel怎么使用呢? 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

JPanel是轻量级容器。

解释:按钮、文本框等都可以放在这个容器中(形象的比喻就是JPanel是个罐子)。JPanel面板本身是不能作为窗口进行显示,必须依赖于JFrame容器等进行显示。

public static void main(String[] args) {\t\tJFrame frame = new JFrame();\t\tJPanel panel = new JPanel();\t\tJTextField jtf3 = new JTextField("指定文本内容");\t\tjtf3.setFont(new Font("谐体", Font.BOLD | Font.ITALIC, 16));\t\t// 设置文本的水平对齐方式\t\tjtf3.setHorizontalAlignment(JTextField.CENTER);\t\tpanel.add(jtf3);\t\tframe.getContentPane().add(panel);\t\tframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\t\tframe.setSize(300, 300);\t\tframe.setVisible(true);\t}

面板实际上就是一个容器,之后可以任意在里面添加(add)或者删除(remove)内容。

例如单击某一个组件就移除这个组件,并且添加另外的组件,下面是一个具体的例子:

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

import javax.swing.JTextField;

public class WinTest3

{

public static void main(String[] args)

{

JFrame frame = new JFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setExtendedState(JFrame.MAXIMIZED_BOTH);

frame.setLayout(new FlowLayout());

JPanel panel = new JPanel();

JButton button = new JButton("change");

panel.add(button);

JTextField f = new JTextField(20);

ActionListener listener = new ChangeListener(button,panel,f);

button.addActionListener(listener);//注册监听器

frame.add(panel);

frame.setVisible(true);

}

}

/*监听器,当单击按钮时,移除button按钮,加入text文本框*/

class ChangeListener implements ActionListener

{

JButton button;

JPanel panel;

JTextField text;

public ChangeListener(JButton button, JPanel panel, JTextField text)

{

super();

this.button = button;

this.panel = panel;

this.text = text;

}

@Override

public void actionPerformed(ActionEvent e)

{

if("change".equals(e.getActionCommand()))

{

panel.remove(button);

panel.add(text);

panel.updateUI();

panel.repaint();

}

}

}

备注:需要特别注意的是移除和添加组件之后,记得重画组件。

JPanel panel1=new JPanel();

panel1.setOpaque(false);

这个setOpaque(false);应该可以帮助楼主了,你看是不是这个效果,如果要达到楼主你说的像酷狗显示歌词的效果,文本必须要用文本框,不过文本框也有setOpaque();方法

JTextField textField =new JTextField();

textField.setOpaque(false);

就可以达到楼主你说的效果了

java中的JPanel怎么用 -

: public static void main(String[] args) { JFrame frame = new JFrame(); JPanel panel = new JPanel(); JTextField jtf3 = new JTextField("指定文本内容"); jtf3.setFont(new Font("谐体", Font.BOLD | Font.ITALIC, 16)); // 设置文本的水平...

JAVA中的JPanel怎么使用呢? -

: 1、进行jdk环境变量的安装(使得Java能够在机器上运行)2、运用编译工具,例如myeclipse,建立Java项目,进行Java项目编码3、编码完成后,可以通过将项目部署到服务器(Tomcat,JBoss等)上,进行发布运行4、检测项目是否可用 拓展:1、Java一般分为前端和后台开发2、前端一般就是像页面的效果等,后台开发一般就是一些项目的后台管理系统,用来做统计啊,或者数据添加等

Java中JPanel()什么意思 -

: JPanel是轻量级容器.解释:按钮、文本框等都可以放在这个容器中(形象的比喻就是JPanel是个罐子).JPanel面板本身是不能作为窗口进行显示,必须依赖于JFrame容器等进行显示.

JAVA中的JPanel怎么使用呢?

: JPanel就是一个面板 也是一个容器 JPanel Pan=new JPanel(); Pan.setLayout(null);//设置为空布局 也就是自由布局Pan.add(控件);//添加控件

Java中jpanel与panel有何区别 -

: panel是包java.awt当中的类,Jpanel是包javax.swing当中的类,属于前者的升级.二者在本质上并没有太大的区别.相对AWT图形用户界面而言,Swing图形用户界面不仅增强了功能,而且减弱了平台相关性,即Swing图形用户界面比AWT图形用户界面可以克服更多的由于操作系统不同所带来的在图形用户界面或交互方式上的差别.因此建议使用swing当中的JPanel

java swing JPanel 是什么

: 1.jFrame是一个窗体(比如登陆界面等),2.JPanel是一个面板,可以说是一个可以放好多东西的容器,如放按钮,图片,标签(图片+文 字).3.JButton 按钮,JTextFiled文本编辑都是组件对象;设计模式-:Jpanel放在JFrame, Jbutton放在Jpanel,为什么要用到JPanel,因为面板jpanel是一个整体,在整体布局的时候有整体效果,设计位置的时候连同加在jpanel里的组件一起布局,整体效果好,如果把按钮直接加在JFrame里面,这样在布局会变的很零乱.

java的Jpanel方法

: add(component comp, object constraints) 方法是把指定组件添加到指定位置.p.add(l,new integer(integer.min_value));表示把i面板添加到p面板的尾部.如果去掉new integer(integer.min_value) 则是把i添加到p中部,不过你这个案例表现不出...

java中JPanel如何用啊! 能不能举个例子啊!

: 去查jdk帮助文档,不能够隐藏jpanel只能隐藏jpanel所在的jframe,你可以把jpanel 1和jpanel 2分别放在两个jframe中,按照一楼的方法,将jframe隐藏就行了,其实jframe有个close()函数,可以直接将jframe关闭了.jframe1.close();这样就能间接隐藏jpanel了.

java中jframe 和jpanel的区别

: JFrame是最底层,JPanel是置于其面上,同一个界面只有一个JFrame,一个JFrame可以放多个JPanel.如果你直接在JFrame上放也可以,但是首先不规范,然后要是过于复杂的界面你准备如何处理这么多控件呢?你可以写个复杂的界面,应该就可以感受到这种区别了

Java中的JPanel和JComponent有什么区别?请各位Java大虾们指教下!!!万分感激!!!

: JPanel 只是嵌入板,上面可以放很多component,而JComponent 是组件,包含很多种类

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
import WordSegment.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.*; import java.io.File; import java.util.Vector; import javax.swing.*; /** * */ /** * @author Truman * */ public class WordSegDemoFrame extends JFrame implements ActionListener { final static int ALGO_FMM = 1; final static int ALGO_BMM = 2; private JMenuBar menuBar = new JMenuBar(); private JMenuItem openDicItem, closeItem; private JRadioButtonMenuItem fmmItem, bmmItem; private JMenuItem openTrainFileItem, saveDicItem, aboutItem; private JButton btSeg; private JTextField tfInput; private JTextArea taOutput; private JPanel panel; JLabel infoDic, infoAlgo; private WordSegment seger; private DicTrainer trainer = new DicTrainer(); private void initFrame() { setTitle("Mini分词器"); setDefaultCloseOperation(EXIT_ON_CLOSE); setJMenuBar(menuBar); JMenu fileMenu = new JMenu("文件"); JMenu algorithmMenu = new JMenu("分词算法"); JMenu trainMenu = new JMenu("训练语料"); JMenu helpMenu = new JMenu("帮助"); openDicItem = fileMenu.add("载入词典"); fileMenu.addSeparator(); closeItem = fileMenu.add("退出"); algorithmMenu.add(fmmItem = new JRadioButtonMenuItem("正向最大匹配", true)); algorithmMenu.add(bmmItem = new JRadioButtonMenuItem("逆向最大匹配", false)); ButtonGroup algorithms = new ButtonGroup(); algorithms.add(fmmItem); algorithms.add(bmmItem); openTrainFileItem = trainMenu.add("载入并训练语料"); saveDicItem = trainMenu.add("保存词典"); aboutItem = helpMenu.add("关于Word Segment Demo"); menuBar.add(fileMenu); menuBar.add(algorithmMenu); menuBar.add(trainMenu); menuBar.add(helpMenu); openDicItem.addActionListener(this); closeItem.addActionListener(this); openTrainFileItem.addActionListener(this); saveDicItem.addActionListener(this); aboutItem.addActionListener(this); fmmItem.addActionListener(this); bmmItem.addActionListener(this); JPanel topPanel = new JPanel(); topPanel.setLayout(new FlowLayout());
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Login extends JFrame implements ActionListener { private JLabel label1, label2; private JTextField textField; private JPasswordField passwordField; private JButton button1, button2; public Login() { setTitle("用户登录"); setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); label1 = new JLabel("用户名:"); label2 = new JLabel("密码:"); textField = new JTextField(20); passwordField = new JPasswordField(20); button1 = new JButton("登录"); button2 = new JButton("重置"); JPanel panel1 = new JPanel(); panel1.setLayout(new GridLayout(2, 1)); JPanel panel2 = new JPanel(); panel2.setLayout(new GridLayout(2, 2)); panel2.add(label1); panel2.add(textField); panel2.add(label2); panel2.add(passwordField); panel1.add(panel2); JPanel panel3 = new JPanel(); panel3.add(button1); panel3.add(button2); panel1.add(panel3); button1.addActionListener(this); button2.addActionListener(this); add(panel1); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == button1) { String username = textField.getText(); String password = new String(passwordField.getPassword()); if (username.equals("admin") && password.equals("123456")) { JOptionPane.showMessageDialog(null, "登录成功!"); } else { JOptionPane.showMessageDialog(null, "用户名或密码错误,请重新输入!"); } } else { textField.setText(""); passwordField.setText(""); } } public static void main(String[] args) { new Login(); } }
06-08
这段代码是一个基于 Java Swing 的简单用户登录界面程序,具体的每行代码意思如下: 1. `import javax.swing.*; import java.awt.*; import java.awt.event.*;`:导入了 Java Swing、AWT 和事件相关的包。 2. `public class Login extends JFrame implements ActionListener {`:定义了一个名为 Login 的类,继承了 JFrame 类,并实现了 ActionListener 接口。 3. `private JLabel label1, label2;`:定义了两个 JLabel 类型的私有成员变量 label1 和 label2。 4. `private JTextField textField;`:定义了一个 JTextField 类型的私有成员变量 textField。 5. `private JPasswordField passwordField;`:定义了一个 JPasswordField 类型的私有成员变量 passwordField。 6. `private JButton button1, button2;`:定义了两个 JButton 类型的私有成员变量 button1 和 button2。 7. `public Login() { ... }`:Login 类的构造函数,定义了界面的布局及控件。 8. `setTitle("用户登录");`:设置窗口的标题为“用户登录”。 9. `setSize(300, 200);`:设置窗口的大小为 300x200 像素。 10. `setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);`:设置窗口的关闭方式为“关闭窗口时退出程序”。 11. `label1 = new JLabel("用户名:");`:创建一个 JLabel,并设置文本内容为“用户名:”。 12. `label2 = new JLabel("密码:");`:创建一个 JLabel,并设置文本内容为“密码:”。 13. `textField = new JTextField(20);`:创建一个 JTextField,并设置宽度为 20 个字符。 14. `passwordField = new JPasswordField(20);`:创建一个 JPasswordField,并设置宽度为 20 个字符。 15. `button1 = new JButton("登录");`:创建一个 JButton,并设置文本内容为“登录”。 16. `button2 = new JButton("重置");`:创建一个 JButton,并设置文本内容为“重置”。 17. `JPanel panel1 = new JPanel();`:创建一个 JPanel 对象 panel1。 18. `panel1.setLayout(new GridLayout(2, 1));`:设置 panel1 的布局为网格布局,2 行 1 列。 19. `JPanel panel2 = new JPanel();`:创建一个 JPanel 对象 panel2。 20. `panel2.setLayout(new GridLayout(2, 2));`:设置 panel2 的布局为网格布局,2 行 2 列。 21. `panel2.add(label1);`:将 label1 添加到 panel2 。 22. `panel2.add(textField);`:将 textField 添加到 panel2 。 23. `panel2.add(label2);`:将 label2 添加到 panel2 。 24. `panel2.add(passwordField);`:将 passwordField 添加到 panel2 。 25. `panel1.add(panel2);`:将 panel2 添加到 panel1 。 26. `JPanel panel3 = new JPanel();`:创建一个 JPanel 对象 panel3。 27. `panel3.add(button1);`:将 button1 添加到 panel3 。 28. `panel3.add(button2);`:将 button2 添加到 panel3 。 29. `panel1.add(panel3);`:将 panel3 添加到 panel1 。 30. `button1.addActionListener(this);`:为 button1 添加一个 ActionListener。 31. `button2.addActionListener(this);`:为 button2 添加一个 ActionListener。 32. `add(panel1);`:将 panel1 添加到窗口。 33. `setVisible(true);`:设置窗口可见。 34. `public void actionPerformed(ActionEvent e) { ... }`:实现 ActionListener 接口的 actionPerformed 方法,处理按钮被点击时的事件。 35. `if (e.getSource() == button1) { ... }`:判断事件源是否为 button1。 36. `String username = textField.getText();`:获取 textField 的文本内容,赋值给变量 username。 37. `String password = new String(passwordField.getPassword());`:获取 passwordField 的密码内容,赋值给变量 password。 38. `if (username.equals("admin") && password.equals("123456")) { ... }`:判断用户名和密码是否正确,如果正确就弹出一个对话框,显示“登录成功!”;否则弹出一个对话框,显示“用户名或密码错误,请重新输入!”。 39. `textField.setText("");`:将 textField 的文本内容清空。 40. `passwordField.setText("");`:将 passwordField 的密码内容清空。 41. `public static void main(String[] args) { ... }`:程序的入口点,创建 Login 对象,启动程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值