charactersetsys.java
来自「任意多台机器」· Java 代码 · 共 206 行
JAVA
206 行
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.IOException;
import java.io.RandomAccessFile;
import javax.swing.DefaultComboBoxModel;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class CharacterSetSys implements ActionListener
{
private JFrame frame;
private Container contentPane;
private P2pSys p2pSys;
//用户名
private JLabel nameLabel;
private JTextField nameField;
private JLabel faceLabel;
private JLabel nowfaceLabel;
private JLabel nowfaceLabel2;
private JButton saveButton;//
private JComboBox facecheck;
private DefaultComboBoxModel comboModel;
private FileOperation fileoperation;
String face = null;
private FaceIconListItemRenderer faceiconlistitemrenderer = new FaceIconListItemRenderer(this.p2pSys);
public CharacterSetSys(P2pSys p2pSys)
{
this.p2pSys =p2pSys;
JFrame.setDefaultLookAndFeelDecorated(true);
frame=new JFrame("设置");
contentPane=frame.getContentPane();
//frame.setLocation(600,30);
frame.setSize(310,310);
frame.setResizable(false);
frame.setLayout( new BorderLayout());
contentPane.setLayout(null);//自由调整布局
//窗体图标
//ImageIcon Icon = new ImageIcon("Duke16.gif");
//frame.setIconImage(Icon.getImage());
//frame.setLayout(new BorderLayout());
Toolkit toolkit=frame.getToolkit();
Image topicon=toolkit.getImage(CharacterSetSys.class.getResource("SystemImage/page_white_cup.png"));
frame.setIconImage(topicon);
//窗体放右上方
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
int w = frame.getSize().width;//获取窗体宽度
int h = frame.getSize().height;//获取窗体高度
int x = (dim.width-w)/2;
int y = (dim.height-h)/3;
frame.setLocation(x,y);//将窗体移到屏幕中间
frame.setVisible(true);
face = "face/1-1.gif";
//用户名
nameLabel=new JLabel("用户名");
nameLabel.setBounds(10,20,60,30);
contentPane.add(nameLabel);
nameField=new JTextField("");
nameField.setBounds(70,20 ,150,30);
nameField.setText(p2pSys.myName);
contentPane.add(nameField);
//当前头像
nowfaceLabel=new JLabel("当前头像");
nowfaceLabel.setBounds(10,60,60,30);
contentPane.add(nowfaceLabel);
nowfaceLabel2=new JLabel();
nowfaceLabel2.setBounds(70,60,150,30);
nowfaceLabel2.setIcon(p2pSys.simplep2psys.faceLabel.getIcon());
nowfaceLabel2.setText(" "+p2pSys.myface);
contentPane.add(nowfaceLabel2);
//头像
faceLabel=new JLabel("重新选择");
faceLabel.setBounds(10,100,60,30);
contentPane.add(faceLabel);
facecheck = new JComboBox();
facecheck.setRenderer(new FaceIconListItemRenderer(this.p2pSys)); //装我们自订的cellRenderer
comboModel = new DefaultComboBoxModel();
facecheck.setModel(comboModel);
facecheck.setBounds(70,100,150,30);
readicon();
facecheck.addItemListener
( //事件处理
new ItemListener()
{
public void itemStateChanged(ItemEvent event)
{
if( event.getStateChange() == ItemEvent.SELECTED)
{
}
}
}
);
contentPane.add(facecheck);
saveButton=new JButton("保存");
saveButton.setBounds(210,235,80,30);
contentPane.add(saveButton);
saveButton.addActionListener(this);
}
private void readicon()
{
String s;
try
{
RandomAccessFile file = new RandomAccessFile("MyFace/face.ini","r");
long filepoint=0;
long length=file.length();
while(filepoint<length)
{
s=file.readLine();
IconListItem item = new IconListItem(new ImageIcon("face/"+s),s);
comboModel.addElement(item); // 为List增加Item
filepoint=file.getFilePointer();
}
file.close();
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
public void actionPerformed(ActionEvent e)
{
// TODO Auto-generated method stub
Object object=e.getSource() ;
if(object.equals(saveButton))
{
String name = nameField.getText();
p2pSys.myName = name;
p2pSys.simplep2psys.faceLabel.setIcon(new ImageIcon(p2pSys.myface));
p2pSys.myface = face;
String characterset = "<name>"+name+"</name>"+"<face>"+p2pSys.myface+"</face>";
fileoperation = new FileOperation();
fileoperation.savePerformed("CharacterSet/CharacterSet.txt",characterset);
p2pSys.simplep2psys.faceLabel.setIcon(new ImageIcon(p2pSys.myface));
p2pSys.modeIp.clear() ;
p2pSys.ipTextField.setText("");
String ip = p2pSys.getLocalIp() ;
String string = p2pSys.xmlFormat.xmlForm("getIp","","",ip,""," "+p2pSys.myName,p2pSys.myface,p2pSys.myemail) .trim() ;
p2pSys.sender.sendMutiCast(string) ;
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?