小KTV学习-2

Posted zy_dream

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小KTV学习-2相关的知识,希望对你有一定的参考价值。

晚上刚才敲了一个这个start显示界面的窗口类和添加歌曲界面

import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.Toolkit;

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

public class Start extends JFrame
	Thread t;
	int n=0;
	JLabel xuan=null;
	JLabel wait=null;
	JLabel inserthead=null;
	JPanel jp=null;
	JProgressBar bar;
	boolean f=true;
	public Start()
		//创建所需组建
		this.jp=new JPanel();
		this.xuan=new JLabel(new ImageIcon("./src/image/KTV1.jpg"));	//KTV图片链接
		this.inserthead=new JLabel(new ImageIcon("./src/image/KTV2.jpg")); 		
		this.wait=new JLabel(new ImageIcon("./src/image/KTV3.jpg")); 	
		this.bar=new JProgressBar();
		bar.setBackground(Color.red);
		bar.setForeground(Color.black);
		bar.setStringPainted(true);
		
		//设置进度条,使用了多线程!使用多线程的方式设置进入主界面的进度条,在进度条读取完毕后进入主界面
		t=new Thread(new Runnable() 
			
			public void run() 
				try 
					Thread.sleep(20);
				 catch (InterruptedException e) 
					e.printStackTrace();
				
				for (int i=0;i<101;i++)
					bar.setValue(i);
					n++;
					try 
						Thread.sleep(43);
					 catch (InterruptedException e) 
						e.printStackTrace();
					
					if (i==100)
						setVisible(false);
						new Applet();
					
				
			
		);
		t.start();
		//获得容器
		Container con=this.getContentPane();
		jp.setLayout(new GridLayout(3, 1));
		//添加组件
		con.add(xuan);
		con.add(jp, BorderLayout.SOUTH);
		jp.add(bar);
		jp.add(inserthead);
		jp.add(wait);		//就是定义一个容器,把组建都放到这里面
		//设置属性
		setTitle("NO.1KTV选歌系统");
		setIconImage(Toolkit.getDefaultToolkit().createImage("./src/image/KTV4.jpg"));		//载入KTV正面图片
		setSize(500, 450);
		setLocation(200,100);
		setVisible(true);
		//窗口关闭
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	

首先学习了解到一个定义一个类,里面的属性在构造函数一开始定义里面都进行了功能的定义,就是上面所说的创建所需组建。

下面又用到了多线程Runnable(里面的run),这里sleep是

1.可以调用Thread类的静态方法:  public static void sleep (long millis) thorows InterruptedException 使得当前线程休眠(暂时停止执行millis毫秒) 
2.由于是静态方法,sleep可以由类名.直接调用:Thread.sleep(…) 
t.start()启动多线程

然后就有容器里面加组建

//获得容器
Container con=this.getContentPane();
jp.setLayout(new GridLayout(3, 1));
//添加组件
con.add(xuan);
con.add(jp, BorderLayout.SOUTH);
jp.add(bar);
jp.add(inserthead);
jp.add(wait);

当然另外还回忆了下导入图片路径

setIconImage(Toolkit.getDefaultToolkit().createImage("./src/image/KTV4.jpg"));		//载入KTV正面图片

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.image.LookupOp;

import javax.swing.DefaultListModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Add extends JFrame implements ActionListener
	//声明组建
	JPanel jp1,jp2,jp3,jp4,jp5,jp6;
	JButton jb1,jb2;
	JLabel jktv,jid,jname,jsinger,jsex,jtype;
	JTextField tid,tname,tsinger,tsex,ttype;
	JLabel song;
	JList jlist;
	DefaultListModel df;
	JScrollPane jsp;
	JTextArea jta;
	public Add(int id)
		//创建出所需要组件
		this.jp1=new JPanel();
		this.jp2=new JPanel();
		this.jp3=new JPanel();
		this.jp4=new JPanel();
		this.jp5=new JPanel();
		this.jp6=new JPanel();
		this.jktv=new JLabel(new ImageIcon("./src/image/KTV6.jpg"));
		this.jid=new JLabel("歌曲  id:");
		this.jname=new JLabel("歌曲名称");
		this.jsinger=new JLabel("歌手名称");
		this.jsex=new JLabel("歌手性别");
		this.jtype=new JLabel("歌曲类型");
		this.tname=new JTextField(18);
		this.tsinger=new JTextField(18);
		this.tsex=new JTextField(18);
		this.tid=new JTextField(3);
		
		this.song=new JLabel("歌曲信息");
		this.jta=new JTextArea(18,33);
		this.df=new DefaultListModel();
		this.jlist=new JList(this.df);
		this.jsp=new JScrollPane(this.jlist);
		this.jsp.add(this.jta);
		//获得容器
		Container con=this.getContentPane();
		con.add(jp4, BorderLayout.NORTH);
		con.add(jp5, BorderLayout.CENTER);
		con.add(jp6, BorderLayout.SOUTH);
		//添加组件
		jp4.add(jktv);
		jp5.add(jp1, BorderLayout.WEST);
		jp5.add(jp2, BorderLayout.CENTER);
		jp5.add(jp3, BorderLayout.EAST);
		jsp.setPreferredSize(new Dimension(390, 200));
		jp6.add(jsp, BorderLayout.CENTER);
		tid.setText(id+"");
		tid.setEditable(false);
		ttype=new JTextField(18);
		jb1=new JButton("确定");
		jb1.addActionListener(this);
		jb2=new JButton("取消");
		jb2.addActionListener(this);
		jp1.setLayout(new GridLayout(5, 1));
		jp2.setLayout(new GridLayout(5, 1));
		jp1.add(jid);
		jp2.add(tid);
		jp1.add(jname);
		jp2.add(tname);
		jp1.add(jsinger);
		jp2.add(tsinger);
		jp1.add(jsex);
		jp2.add(tsex);
		jp1.add(jtype);
		jp2.add(jtype);
		jp3.add(jb1);
		jp3.add(jb2);
		//设置属性
		setTitle("添加歌曲");
		setIconImage(Toolkit.getDefaultToolkit().createImage("./src/image/KTV8.jpg"));
		setLocation(300, 100);
		pack();
		setVisible(true);
	
	public void actionPerformed(ActionEvent e) 
		if (e.getActionCommand().equals("确定"))
			int id=Integer.parseInt(tid.getText());
			String name=tname.getText();
			String singer=tsinger.getText();
			String sex=tsex.getText();
			String type=ttype.getText();
			new Oper().add(id, name, singer, type, sex);
			setVisible(false);
		
		if (e.getActionCommand().equals("取消"))
			setVisible(false);
	
	


这里的添加歌曲界面,我的天,全都是组建有关的操作,简直了,不认识的有

还是自己做的少,没用过,不看API,不了解呐。

但是进一步认知了

public void actionPerformed(ActionEvent e) 
		if (e.getActionCommand().equals("确定"))
			int id=Integer.parseInt(tid.getText());
			String name=tname.getText();
			String singer=tsinger.getText();
			String sex=tsex.getText();
			String type=ttype.getText();
			new Oper().add(id, name, singer, type, sex);
			setVisible(false);
		
		if (e.getActionCommand().equals("取消"))
			setVisible(false);
	
得到getText()然后经过Oper()进入管理层的里面找到执行功能函数

哦这样子就把界面层和业务处理层联系起来了!get

以上是关于小KTV学习-2的主要内容,如果未能解决你的问题,请参考以下文章

KTV后台的重要性

编程2022-02 KTV

怎么搜索某个专辑或者歌曲的图片

安卓盒子点歌系统代码

我想请问一下腾讯地图如何标注娱乐(ktv,酒吧)的图标?

KTV项目之3个ListView的跳转和加载歌手图片