⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainframe.java

📁 java 聊天工具 包括服务器 和 客户端 类似
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
						JOptionPane.showMessageDialog(null, "您未选择发送对象,或对方已下线", "ERROR", JOptionPane.ERROR_MESSAGE);
						return;
					}
					
					JFileChooser chooser = new JFileChooser();
					ExampleFileFilter filter = new ExampleFileFilter();
					filter.addExtension("jpg");
				    filter.addExtension("gif");
				    filter.setDescription("JPG & GIF Images");
				    chooser.setFileFilter(filter);
				    chooser.setMultiSelectionEnabled(false);
				    int returnVal = chooser.showOpenDialog(new JFrame());
				    //System.out.println(returnVal);
				    if(returnVal == chooser.APPROVE_OPTION){//按下确定,选择图片成功
				    	File selectFile = chooser.getSelectedFile();
				    	try{
				    		//******************************************
				    		//得到面板并输出
				    		JScrollPaneWithText current = null;
							for(int i=1;i<jTabbedPane.getTabCount();i++){
								if(jTabbedPane.getTitleAt(i).equals(toName)){
									 if(jTabbedPane.getComponentAt(i) instanceof JScrollPaneWithText){
										  current = (JScrollPaneWithText)jTabbedPane.getComponentAt(i);
									 }
									 break;
								}
							}
							
							if(current==null){
								JScrollPaneWithText jSText = new JScrollPaneWithText();
								jTabbedPane.addTab(toName, null, jSText, null);
								jTabbedPane.setSelectedComponent(jSText);
								current = jSText;
							}
							
							Style newStyle = current.getJTextPane().addStyle("newStyle", def);
					    	StyleConstants.setAlignment(newStyle, StyleConstants.ALIGN_RIGHT);
					    	StyleConstants.setIcon(newStyle,new ImageIcon(selectFile.getAbsolutePath()));
					    	
						    Document doc = current.getJTextPane().getDocument();
						    try{
						    	doc.insertString(doc.getLength(),jTextField.getText().concat(GetTime.currentTime().concat(new String("\n"))), sys2);
						    	doc.insertString(doc.getLength(),"\n",newStyle);
						    	current.getJTextPane().setCaretPosition(current.getJTextPane().getDocument().getLength());
						    }catch(BadLocationException ble){
						    	System.err.println("Couldn't insert initial text");
						    }   
				    		
				    		//******************************************
				    		byte[] imageBytes = new byte[(int)selectFile.length()];//发送的图片大小不能超过整数的表示范围
				    		FileInputStream imageIn = new FileInputStream(selectFile);
				    		imageIn.read(imageBytes);
				    		if(toName!=null){
				    		StreamData imageData = new StreamData(jTextField.getText(),toName,"IMAGE",fontFamily,0,0,imageBytes,imageBytes.length);
							objectOutputStream.writeObject(imageData);
				    		}
				    	}catch(IOException ioe){
				    		ioe.printStackTrace();
				    	}
				    }
					//System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return jButton6;
	}

	/**
	 * This method initializes jButton7	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton7() {
		if (jButton7 == null) {
			jButton7 = new JButton();
			jButton7.setText("文件");
			//jButton7.setIcon(new ImageIcon("Icon\\文件.JPG"));
			jButton7.addActionListener(new java.awt.event.ActionListener() {//发送文件
				public void actionPerformed(java.awt.event.ActionEvent e) {

					
					if(login == false){//尚未登陆
						JOptionPane.showMessageDialog(null, "请先登陆", "ERROR", JOptionPane.ERROR_MESSAGE);
						return;
					}
					
					if(toName==null){//没有接收方
						JOptionPane.showMessageDialog(null, "您未选择发送对象,或对方已下线", "ERROR", JOptionPane.ERROR_MESSAGE);
						return;
					}
					
					JFileChooser chooser = new JFileChooser();
				    chooser.setMultiSelectionEnabled(false);
				    int returnVal = chooser.showOpenDialog(new JFrame());
				    if(returnVal == chooser.APPROVE_OPTION){//按下确定,选择文件成功
				    	File selectFile = chooser.getSelectedFile();
				    	try{
				    		//******************************************
				    		//得到面板并输出
				    		JScrollPaneWithText current = null;
							for(int i=1;i<jTabbedPane.getTabCount();i++){
								if(jTabbedPane.getTitleAt(i).equals(toName)){
									 if(jTabbedPane.getComponentAt(i) instanceof JScrollPaneWithText){
										  current = (JScrollPaneWithText)jTabbedPane.getComponentAt(i);
									 }
									 break;
								}
							}
							
							if(current==null){
								JScrollPaneWithText jSText = new JScrollPaneWithText();
								jTabbedPane.addTab(toName, null, jSText, null);
								jTabbedPane.setSelectedComponent(jSText);
								current = jSText;
							}
							
							//Style newStyle = current.getJTextPane().addStyle("newStyle", def);
					    	//StyleConstants.setAlignment(newStyle, StyleConstants.ALIGN_RIGHT);
					    	//StyleConstants.setIcon(newStyle,new ImageIcon(selectFile.getAbsolutePath()))
					    	
						    Document doc = current.getJTextPane().getDocument();
						    try{
						    	doc.insertString(doc.getLength(),new String("您选择了发送文件 ").concat(selectFile.getName()).concat(new String(" 给 ")).concat(toName).concat(new String("\n")), sys3);
						    	current.getJTextPane().setCaretPosition(current.getJTextPane().getDocument().getLength());
						    }catch(BadLocationException ble){
						    	System.err.println("Couldn't insert initial text");
						    }   
				    		
				    		//******************************************
				    		byte[] fileBytes = new byte[(int)selectFile.length()];//发送的文件大小不能超过整数的表示范围
				    		FileInputStream fileIn = new FileInputStream(selectFile);
				    		fileIn.read(fileBytes);
				    		if(toName!=null){
				    		StreamData fileData = new StreamData(jTextField.getText(),toName,"FILE",selectFile.getName(),0,0,fileBytes,fileBytes.length);
							objectOutputStream.writeObject(fileData);
				    		}
				    	}catch(IOException ioe){
				    		ioe.printStackTrace();
				    	}
				    }
					//System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
				
					//System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return jButton7;
	}

	/**
	 * This method initializes jButton8	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton8() {
		if (jButton8 == null) {
			jButton8 = new JButton();
			jButton8.setText("字号");
			//jButton8.setIcon(new ImageIcon("Icon\\FontSize.JPG"));
			jButton8.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {//字体大小选择器
					Object[] fontSizeValues = {"12","14","16","18","20","22","24","28","32"};
				    Object selectedValue = JOptionPane.showInputDialog(null,"Choose one", "FontSizeChooser",
				    JOptionPane.INFORMATION_MESSAGE,null,fontSizeValues, fontSizeValues[0]);
				    if (selectedValue!=null){
				    fontSize = Integer.parseInt((String)selectedValue);
				    jTextArea.setFont(new Font(fontFamily,Font.PLAIN,fontSize));
				    }
					//System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return jButton8;
	}

	/**
	 * This method initializes jButton9	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton9() {
		if (jButton9 == null) {
			jButton9 = new JButton();
			jButton9.setText("表情");
			//jButton9.setIcon(new ImageIcon("Icon\\Face.JPG"));
			jButton9.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					faceChooser.setVisible(true);
					//System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return jButton9;
	}

	/**
	 * This method initializes jButton10	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton10() {
		if (jButton10 == null) {
			jButton10 = new JButton();
			jButton10.setText("提示音");
			//jButton10.setIcon(new ImageIcon("Icon\\Warn.JPG"));
			jButton10.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
						int ret = JOptionPane.showConfirmDialog(null, "打开提示音", "提示音", JOptionPane.YES_NO_OPTION);
						if(ret == JOptionPane.YES_OPTION) msg = true;
						else msg = false;
					//System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return jButton10;
	}

	/**
	 * This method initializes jButton11	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton11() {
		if (jButton11 == null) {
			jButton11 = new JButton();
			jButton11.setText("音乐");
			//jButton11.setIcon(new ImageIcon("Icon\\Music.JPG"));
			jButton11.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					Object[] AudioValues = {"silver bell.mid","Joy to the world.mid","we wish you a merry christmas.mid","圣诞老人进城.mid","我听到了圣诞钟声.mid"};
				    Object selectedValue = JOptionPane.showInputDialog(null,"Choose one", "AudioChooser",
				    JOptionPane.INFORMATION_MESSAGE,null,AudioValues, AudioValues[0]);
				    File file= new File(".");
				    if (selectedValue!=null){
				    String audio = (String)selectedValue;
				    try{
				    if(currentAudio == null){
				    	currentAudio = Applet.newAudioClip(new URL("file:/"+file.getAbsolutePath()+"/Audio/"+audio));
				    }
				    else{
				    	currentAudio.stop();
				    	currentAudio = Applet.newAudioClip(new URL("file:/"+file.getAbsolutePath()+"/Audio/"+audio));
				    }
				    currentAudio.play();
				    }catch(Exception e2){
				    	e2.printStackTrace();
				    }
				    }
				    else{
				    	if(currentAudio !=null) currentAudio.stop();
				    }
					//System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return jButton11;
	}

	/**
	 * This method initializes jTextField2	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJTextField2() {
		if (jTextField2 == null) {
			jTextField2 = new JTextField();
			jTextField2.setText("127.0.0.1");
			jTextField2.setBounds(new Rectangle(69, 380, 78, 23));
		}
		return jTextField2;
	}

	/**
	 * This method initializes jPasswordField	
	 * 	
	 * @return javax.swing.JPasswordField	
	 */
	private JPasswordField getJPasswordField() {
		if (jPasswordField == null) {
			jPasswordField = new JPasswordField();
			jPasswordField.setBounds(new Rectangle(63, 59, 135, 21));
		}
		return jPasswordField;
	}

	/**
	 * This method initializes jScrollPane2	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getJScrollPane2() {
		if (jScrollPane2 == null) {
			jLabel3 = new JLabel();
			//jLabel3.setText("JLabel");
			jLabel3.setIcon(new ImageIcon("Icon\\5.jpg"));
			jScrollPane2 = new JScrollPane();
			jScrollPane2.setBounds(new Rectangle(5, 22, 195, 160));
			jScrollPane2.setViewportView(jLabel3);
		}
		return jScrollPane2;
	}

	/**
	 * This method initializes jButton12	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton12() {
		if (jButton12 == null) {
			jButton12 = new JButton();
			jButton12.setText("资料");
			jButton12.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if(login == false){//尚未登陆
						JOptionPane.showMessageDialog(null, "请先登陆", "ERROR", JOptionPane.ERROR_MESSAGE);
						return;
					}
					
					if(toName==null){//没有接收方
						JOptionPane.showMessageDialog(null, "您未选择查看资料的对象", "ERROR", JOptionPane.ERROR_MESSAGE);
						return;
					}
					
					try{
					StreamData UserInfo = new StreamData(jTextField.getText(),"ServerUserInfo"," ",toName,0,0,new String("userDate").getBytes(),new String("userDate").getBytes().length);
					objectOutputStream.writeObject(UserInfo);
					}catch(Exception ioe){
						ioe.printStackTrace();
					}
					//System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return jButton12;
	}

}  //  @jve:decl-index=0:visual-constraint="67,10"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -