java编写图形界面程序 java漂亮界面编程
大家好,关于java编写图形界面程序很多朋友都还不太明白,今天小编就来为大家分享关于java漂亮界面编程的知识,希望对各位有所帮助!
java图形界面编程
因为这是个applet不能直接运行
注意:applet不能直接用java命令运行
方法(步骤):
1、Javac welcome.java后生成welcome.class
2、在跟welcome.class同一级的目录下新建一个文本文件,并输入:
<applet code="welcome.class"
width=320 height=180>
</applet>
3、保存并将文件名改为welcome.html
(这个html文件的名字任意,在这边我用welcome)
4、在cmd中输入appletviewer welcome.html便可以看见你的applet了
或直接把这个welcome.html拖入浏览器运行,也可以有同样效果
5、现在我解释一下上面的代码:
<applet>
</applet>
是必要的格式,在里面可以输入许多参数,其中code,width,height是必须的
code:欲运行的class的名字
width:applet窗口的宽度
height: applet窗口的高度
JAVA 图形界面编程问题
给你说下调用次序你就知道了。
按缩进。
主函数
构造TestAddButton实例
init();
jpanel=new JPanel();
this.add(jpanel);
this.setSize(400,400);
注册鼠标事件监听
显示TestAddButton实例
然后在鼠标事件触发:
addButton
添加按钮的代码
结构明白了,下面就是哪出的问题。
你感觉明明添加了,却不显示。有些不是看API文档或书能知道的,就得自己做一做。
AWT中添加组件能直接看的见的。但在swing中未必。
swing和AWT很多东西有细节差距的。swing下的GUI,凡是更改了UI的,一定要repaint,这是个原则问题。
你的问题就在于以为添加了组件就一定显示。在swing中是不成立的。
而且,虽然awt添加组件能直接显示,但绘制一样不会自动更新的。
所以,凡是更改了UI的,一定要repaint。
JAVA的图形用户界面代码
package hao;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.io.File;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextPane;
import javax.swing.text.BadLocationException;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;
public class ChatPanel extends JPanel{
private static final long serialVersionUID= 1L;
JButton send,record,saveRecord,image;
JTextArea inputArea;
JTextPane text;//注意用法****************************************************************************
JComboBox fontName= null, fontSize= null, fontStyle= null, fontColor= null,fontBackColor= null;
public StyledDocument doc= null; JScrollPane scrollPane;JPanel textChat;
JButton music;
public ChatPanel(){
setLayout(new BorderLayout());
text= new JTextPane();
text.setEditable(false);
doc= text.getStyledDocument();//跟踪文本和图片写到该区域的位置*************************************
scrollPane= new JScrollPane(text);
//注意下面对JComboBox的巧用***********************************************************************
String[] str_name={"宋体","黑体","Dialog","Gulim"};
String[] str_Size={"12","14","18","22","30","40"};
String[] str_Style={"常规","斜体","粗体","粗斜体"};
String[] str_Color={"黑色","红色","蓝色","黄色","绿色"};
String[] str_BackColor={"无色","灰色","淡红","淡蓝","淡黄","淡绿"};
fontName= new JComboBox(str_name);
fontSize= new JComboBox(str_Size);
fontStyle= new JComboBox(str_Style);
fontColor= new JComboBox(str_Color);
fontBackColor= new JComboBox(str_BackColor);
fontName.setBackground(new Color(255,153,255));
fontSize.setBackground(new Color(255,153,255));
fontStyle.setBackground(new Color(255,153,255));
fontColor.setBackground(new Color(255,153,255));
fontBackColor.setBackground(new Color(255,153,255));
Box box= Box.createVerticalBox();//创建一个可以容纳多个Box组件的Box*******************************
Box box_1= Box.createHorizontalBox();
Box box_2= Box.createHorizontalBox();
Box box_4= Box.createHorizontalBox();
box.add(box_1);
box.add(box_2);
box.add(box_4);
JLabel b1= new JLabel("字体~~"), b2= new JLabel("样式~~"),b3= new JLabel("字号~~"),b4= new JLabel("颜色~~"),b5= new JLabel("背景~~");
b1.setBackground(new Color(255,153,255));
b2.setBackground(new Color(255,153,255));
b3.setBackground(new Color(255,153,255));
b4.setBackground(new Color(255,153,255));
b5.setBackground(new Color(255,153,255));
box_1.add(b1);
box_1.add(fontName);
box_1.add(Box.createHorizontalStrut(8));
box_1.add(b2);
box_1.add(fontStyle);
box_1.add(Box.createHorizontalStrut(8));
box_1.add(b3);
box_1.add(fontSize);
box_2.add(Box.createHorizontalStrut(8));
box_2.add(b4);
box_2.add(fontColor);
box_2.add(Box.createHorizontalStrut(8));
box_4.add(b5);
box_4.add(fontBackColor);
textChat= new JPanel();
textChat.setLayout(new BorderLayout());
textChat.setBackground(new Color(255,153,255));
inputArea= new JTextArea(3, 20);
inputArea.setLineWrap(true);//设置文本区的换行策略。88888*********************************
send= new JButton("发送");
record=new JButton("显示记录");
saveRecord=new JButton("储存记录");
image=new JButton("表情");
send.setBackground(new Color(255,153,255));
record.setBackground(new Color(255,153,255));
saveRecord.setBackground(new Color(255,153,255));
image.setBackground(new Color(255,153,255));
Box box_3= Box.createHorizontalBox();
box_3.add(send); box_3.add(Box.createHorizontalStrut(8));//设置按钮间距*************************888
box_3.add(record); box_3.add(Box.createHorizontalStrut(8));//设置按钮间距*************************888
box_3.add(saveRecord); box_3.add(Box.createHorizontalStrut(8));//设置按钮间距*************************888
box_3.add(image);
box.setBorder(BorderFactory.createLineBorder(new Color(102,102,0),5));//设置Box的边框线********************
box_3.setBorder(BorderFactory.createLineBorder(new Color(102,102,0),5));
textChat.add(box,BorderLayout.NORTH);
textChat.add(inputArea,BorderLayout.CENTER);
textChat.add(box_3, BorderLayout.SOUTH);
inputArea.requestFocus(true);
inputArea.setBorder(BorderFactory.createLineBorder(new Color(102,102,0),5));//设置输入窗口边框线*******************
text.setBorder(BorderFactory.createLineBorder(new Color(102,102,0),8));//设置输入窗口边框线*******************
JPanel audioPanel= new JPanel();//最上面的边框************************************************************************
audioPanel.setBackground(new Color(255,153,255));
audioPanel.setLayout(new GridLayout(1,1));
music= new JButton("想听就听");
music.setPreferredSize(new Dimension(320,50));
music.setBorder(BorderFactory.createLineBorder(Color.BLACK,10));//设置输入窗口边框线*******************
audioPanel.add(music);
add(audioPanel, BorderLayout.NORTH);
add(scrollPane,BorderLayout.CENTER);
add(textChat, BorderLayout.SOUTH);
}
void insertIcon(ImageIcon image){
text.setCaretPosition(doc.getLength());
text.insertIcon(image);
insert(new MessageStyle());//?????????????????????????????????????????????????????????????????????????????/
}
public void insert(MessageStyle attrib){
try{
doc.insertString(doc.getLength(), attrib.getText()+"\n", attrib.getAttrSet());//写完后接着换行************
} catch(BadLocationException e){
e.printStackTrace();
}
}
public MessageStyle getMessageStyle(String line){
MessageStyle att= new MessageStyle();
att.setText(line);
att.setName((String) fontName.getSelectedItem());
att.setSize(Integer.parseInt((String) fontSize.getSelectedItem()));
String temp_style=(String) fontStyle.getSelectedItem();
if(temp_style.equals("常规")){
att.setStyle(MessageStyle.GENERAL);
}
else if(temp_style.equals("粗体")){
att.setStyle(MessageStyle.BOLD);
}
else if(temp_style.equals("斜体")){
att.setStyle(MessageStyle.ITALIC);
}
else if(temp_style.equals("粗斜体")){
att.setStyle(MessageStyle.BOLD_ITALIC);
}
String temp_color=(String) fontColor.getSelectedItem();
if(temp_color.equals("黑色")){
att.setColor(new Color(0, 0, 0));
}
else if(temp_color.equals("红色")){
att.setColor(new Color(255, 0, 0));
}
else if(temp_color.equals("蓝色")){
att.setColor(new Color(0, 0, 255));
}
else if(temp_color.equals("黄色")){
att.setColor(new Color(255, 255, 0));
}
else if(temp_color.equals("绿色")){
att.setColor(new Color(0, 255, 0));
}
String temp_backColor=(String) fontBackColor.getSelectedItem();
if(!temp_backColor.equals("无色")){
if(temp_backColor.equals("灰色")){
att.setBackColor(new Color(200, 200, 200));
}
else if(temp_backColor.equals("淡红")){
att.setBackColor(new Color(255, 200, 200));
}
else if(temp_backColor.equals("淡蓝")){
att.setBackColor(new Color(200, 200, 255));
}
else if(temp_backColor.equals("淡黄")){
att.setBackColor(new Color(255, 255, 200));
}
else if(temp_backColor.equals("淡绿")){
att.setBackColor(new Color(200, 255, 200));
}
}
return att;
}
}
文章分享结束,java编写图形界面程序和java漂亮界面编程的答案你都知道了吗?欢迎再次光临本站哦!