「java窗口关联」Java关联
今天给各位分享java窗口关联的知识,其中也会对Java关联进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java中一个窗体不能同时关联两个对话框吗
- 2、java 关联已有的窗口
- 3、Java中如何用登陆窗口连接到另一个窗口
- 4、如何在java程序中,当点击一个按钮后,关闭当前窗口,开启一个新的窗口。
- 5、java类之间关系中,一般的关联关系是怎样的
java中一个窗体不能同时关联两个对话框吗
题主所谓的对话框是指java.awt.Dialog或javax.swing.JDialog吗?这个应该没有限制,一个窗体中可以有多个Dialog或JDialog,只是不能同时显示出来。下面是一段示例代码,一个窗体,2个不同的JDialog,窗体上有2 个按钮,按A显示其一,按B显示另一个。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class FrameDemo extends JFrame implements ActionListener
{
private class Dlg1 extends JDialog
{
Dlg1()
{
super(FrameDemo.this,"Dialog A",true);
setDefaultCloseOperation(HIDE_ON_CLOSE);
setSize(100,100);
}
}
private class Dlg2 extends JDialog
{
Dlg2()
{
super(FrameDemo.this,"B Dialog",true);
setDefaultCloseOperation(HIDE_ON_CLOSE);
setSize(100,80);
}
}
Dlg1 d1=new Dlg1();
Dlg2 d2=new Dlg2();
Button btnA=new Button("A");
Button btnB=new Button("B");
FrameDemo()
{
setTitle("Test");
setSize(300,300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new FlowLayout());
add(btnA);
add(btnB);
btnA.addActionListener(this);
btnB.addActionListener(this);
}
public static void main(String... args)
{
new FrameDemo().setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e)
{
Object o=e.getSource();
if(o==btnA)
{
d1.setVisible(true);
}
else if(o==btnB)
{
d2.setVisible(true);
}
}
}
java 关联已有的窗口
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Main extends JFrame {
public Main() {
super();
setVisible(true);
setSize(200, 300);
final JPanel panel = new JPanel();
getContentPane().add(panel, BorderLayout.CENTER);
final JButton button = new JButton();
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
about a=new about(null,"关于",true);
a.setVisible(true);
}
});
button.setText("关于");
panel.add(button);
}
public static void main(String[] arg){
new Main();
}
}
下面是about。java
import java.awt.Dialog;
import javax.swing.JDialog;
public class about extends JDialog {
public about(Dialog arg0, String arg1, boolean arg2) {
super(arg0, arg1, arg2);
setSize(100,200);
}
}
只是简单的弹出窗口,具体功能自己写
Java中如何用登陆窗口连接到另一个窗口
1.首先你要创建查询的窗口类 假设为:SelFrame
2.将你登录的登录按钮的事件更改下。
如果账号正确,就创建一个SelFrame类
错误则不创建
public void actionPerformed(ActionEvent e){
if(e.getSource()==b1){
String s1="你的姓名是:"+tf1.getText();
String s2="你输入的密码是:"+tf2.getText();
if(账号存在)
{
new SelFrame();
}else
{
System.out.println("账号密码错误!!");
}
System.out.println(s1);
System.out.println(s2);
}
else if(e.getSource()==b2){
tf1.setText(" ");
tf2.setText(" ");
}
}
如何在java程序中,当点击一个按钮后,关闭当前窗口,开启一个新的窗口。
首先分析需要的GUI技术
java中一般使用swing 和awt技术来实现图形界面,Swing组件较多,功能比较强大,所以这里使用Swing组件来实现。窗口使用(JFrame),按钮使用(JButton)。
设想一个符合题目需求的场景
两个窗口关联并且跳转,最常见的场景就是登陆了。
登陆窗口,输入用户名和密码,如果成功就跳转到主窗口
核心逻辑,跳转窗口的关键代码
一般可以隐藏本窗口(setVisible(false);),显示新窗口来实现窗口的跳转。
但是隐藏窗口,会在后面浪费系统资源。
如果不再使用该窗口,应该彻底销毁(dispose();),释放系统资源
代码和注释
LoginFrame 类
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//LoginFrame 登陆窗口 功能 实现用户登陆 ,如果成功就跳转
//LoginFrame 继承于窗口类, 并实现ActionListener接口
public class LoginFrame extends JFrame implements ActionListener {
// 申明需要的组件
JButton jb1, jb2;//按钮
JTextField jtf1;//文本框
JPasswordField jpf1;//密码框
public LoginFrame() {
// 窗口属性的设置
setTitle("登陆窗");// 窗口标题
setSize(300, 180);// 窗口大小
setLocationRelativeTo(null);// 窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);// 关闭窗口则退出虚拟机
setLayout(new FlowLayout());// 设置布局流式布局
JPanel jp = new JPanel(new GridLayout(4, 1));// 设置面板为表格布局4行1列
// 第一行
JPanel jp1 = new JPanel();
JLabel jl1 = new JLabel("账号 ");
jtf1 = new JTextField(12);
jp1.add(jl1);
jp1.add(jtf1);
jp.add(jp1);
// 第二行
JPanel jp2 = new JPanel();
JLabel jl2 = new JLabel("密码 ");
jpf1 = new JPasswordField(12);
jp2.add(jl2);
jp2.add(jpf1);
jp.add(jp2);
// 第三行
JPanel jp3 = new JPanel();
jb1 = new JButton("登陆");
jb1.addActionListener(this);// 添加动作响应器
jb2 = new JButton("重置");
jb2.addActionListener(this);// 添加动作响应器
jp3.add(jb1);
jp3.add(jb2);
jp.add(jp3);
// 第四行
JPanel jp4 = new JPanel();
JLabel jl3 = new JLabel("提示: 账号 admin 密码 123");
jl3.setForeground(Color.DARK_GRAY);
jp4.add(jl3);
jp.add(jp4);
add(jp);
}
// 动作响应
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();// 根据动作命令,来进行分别处理
if (cmd.equals("登陆")) {
String id = jtf1.getText();// 取得用户名
String key = new String(jpf1.getPassword());// 取得密码
if (id.equals("admin") key.equals("123")) {// 判断是否登录成功
// 如果登录成功
setVisible(false);// 本窗口隐藏,
new MainFrame(id).setVisible(true);// 新窗口显示
dispose();//本窗口销毁,释放内存资源
} else {
//如果登录失败 弹出提示
JOptionPane.showMessageDialog(this, "用户名或者密码错误.", "通知", JOptionPane.ERROR_MESSAGE);
clearText();//清空文本框 密码框的输入
}
} else if (cmd.equals("重置")) {
clearText();
}
}
private void clearText() {//清空文本框, 密码框的输入
jtf1.setText("");
jpf1.setText("");
}
//main方法, 程序的入口
public static void main(String[] args) {
new LoginFrame().setVisible(true);//创建登录窗口,并可见
}
}
MainFrame类
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MainFrame extends JFrame {
public MainFrame(String name) {
setTitle("主窗口");//标题
setSize(300, 260);//大小
setLocationRelativeTo(null);//居中
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel jp = new JPanel();
JLabel jl1 = new JLabel("欢迎");
JLabel jl2 = new JLabel(name);
jl2.setForeground(Color.BLUE);//设置文本颜色
JLabel jl3 = new JLabel("使用系统.");
jp.add(jl1);
jp.add(jl2);
jp.add(jl3);
add(jp, BorderLayout.NORTH);
JTextArea jta = new JTextArea();
jta.setLineWrap(true);
jta.append("消息提示");
jta.append(" 消息!通知~!");
JScrollPane jsp = new JScrollPane(jta, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
add(jsp);
JPanel jp2 = new JPanel();
JButton jb = new JButton("退出");
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);//退出
}
});
jp2.add(jb);
add(jp2,BorderLayout.SOUTH);
}
}
运行效果图
java类之间关系中,一般的关联关系是怎样的
关联关系分为两种:聚合和组合。聚合:举个例子,学校类是整体,而学生类是部分。学校与学生都是可以独立存在的,之间没有什么必然的联系。因此学校与学生就是聚合关系。代码:
public class Student{
}
public class School{
private ListStudent students ; //学校与学生是聚合关系
}
组合:如Windows的窗口和窗口上的菜单就是组合关系。如果整体被销毁,部分也必须跟着一起被销毁,如果所有者被复制,部分也必须一起被复制。,代码:
public class Menu{
}
public class Window{
private ListMenu menus ;
}
java窗口关联的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java关联、java窗口关联的信息别忘了在本站进行查找喔。