我要做一个字体选择的窗口,请大家帮忙!

xxisxx 2003-11-28 10:42:20
我要做一个字体选择的窗口,请大家帮忙!
就和windows风格一样的,就可以,谁又简单的例子,让我参考参考
多谢
...全文
38 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dfmo 2004-01-15
  • 打赏
  • 举报
回复
对了,上面的代码在JBuilder8中不太好用,但是在JBuilder7中正常。
dfmo 2004-01-14
  • 打赏
  • 举报
回复
//我也在做,我做出来了一个,不过独立运行好用,一用到其它工程中
//在用到中文字体时就不好用了,你研究一下吧。
//研究出来告诉我一声哦。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.text.*;

/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

public class FontColorChooser extends JDialog {
SimpleAttributeSet attributes; //属性集
JPanel panel1 = new JPanel();
BorderLayout borderLayout1 = new BorderLayout();
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
JPanel jPanel3 = new JPanel();
JPanel jPanel4 = new JPanel();
JPanel jPanel5 = new JPanel();
JColorChooser colorChooser = new JColorChooser(Color.black);
BorderLayout borderLayout2 = new BorderLayout();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JLabel jLabel1 = new JLabel();
JComboBox jComboBox1;
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
JComboBox jComboBox2;
JCheckBox jCheckBox1 = new JCheckBox();
JCheckBox jCheckBox2 = new JCheckBox();
BorderLayout borderLayout3 = new BorderLayout();

public FontColorChooser(Frame frame, String title, boolean modal) {
super(frame, title, modal);
try {
jbInit();
pack();
}
catch (Exception ex) {
ex.printStackTrace();
}
}

public FontColorChooser() {
this(null, "", false);
}

private void jbInit() throws Exception {
//添加所有字体
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
//String[] defaultFonts = (java.awt.Toolkit.getDefaultToolkit().getFontList());
String[] systemFonts = ge.getAvailableFontFamilyNames();
//String[] allFonts = new String[defaultFonts.length + systemFonts.length];
jComboBox1 = new JComboBox(systemFonts);

//设置字体大小
String[] strFontSize = {"8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"};
jComboBox2 = new JComboBox(strFontSize);

attributes = new SimpleAttributeSet();

this.setSize(400, 500);
panel1.setLayout(borderLayout1);
jPanel1.setBorder(BorderFactory.createEtchedBorder());
jPanel2.setBorder(BorderFactory.createEtchedBorder());
jPanel2.setLayout(borderLayout3);
jPanel3.setBorder(BorderFactory.createEtchedBorder());
jPanel3.setDebugGraphicsOptions(0);
jPanel3.setLayout(borderLayout2);
jButton1.setText("确定");
jButton2.setText("取消");
jLabel1.setText("这是字体的样本。Here is a sample of this font.");
jLabel2.setText("字体");
jLabel3.setRequestFocusEnabled(true);
jLabel3.setText("大小");
jCheckBox1.setText("加粗");
jCheckBox1.addActionListener(new FontColorChooser_jCheckBox1_actionAdapter(this));
jCheckBox2.setText("倾斜");
jCheckBox2.addActionListener(new FontColorChooser_jCheckBox2_actionAdapter(this));
this.setModal(true);
jComboBox1.addActionListener(new FontColorChooser_jComboBox1_actionAdapter(this));
jComboBox2.addActionListener(new FontColorChooser_jComboBox2_actionAdapter(this));
getContentPane().add(panel1);
panel1.add(jPanel1, BorderLayout.NORTH);
jPanel1.add(jLabel2, null);
jPanel1.add(jComboBox1, null);
jPanel1.add(jLabel3, null);
jPanel1.add(jComboBox2, null);
jPanel1.add(jCheckBox1, null);
jPanel1.add(jCheckBox2, null);
panel1.add(jPanel2, BorderLayout.CENTER);
jPanel2.add(colorChooser, BorderLayout.CENTER);
this.getContentPane().add(jPanel3, BorderLayout.SOUTH);
jPanel3.add(jPanel4, BorderLayout.NORTH);
jPanel4.add(jLabel1, null);
jPanel3.add(jPanel5, BorderLayout.CENTER);
jPanel5.add(jButton1, null);
jPanel5.add(jButton2, null);
colorChooser.getSelectionModel().addChangeListener(new javax.swing.
event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent e) {
updatePreviewColor();
}
});
}

public void updatePreviewColor(){
jLabel1.setForeground(colorChooser.getColor());
}

public void updatePreviewFont() {
String name = StyleConstants.getFontFamily(attributes);
boolean bold = StyleConstants.isBold(attributes);
boolean ital = StyleConstants.isItalic(attributes);
int size = StyleConstants.getFontSize(attributes);

//Bold and italic don't work properly in beta 4.
Font f = new Font(name, (bold ? Font.BOLD : 0) +
(ital ? Font.ITALIC : 0), size);
jLabel1.setFont(f);
jLabel1.setFont(f);
jLabel1.repaint();
}


public static void main(String[] arg) {
FontColorChooser fontColorChooser = new FontColorChooser();
fontColorChooser.show();
}

void jComboBox1_actionPerformed(ActionEvent e) {
StyleConstants.setFontFamily(attributes, (String)jComboBox1.getSelectedItem());
updatePreviewFont();
}

void jComboBox2_actionPerformed(ActionEvent e) {
StyleConstants.setFontSize(attributes, Integer.parseInt((String)jComboBox2.getSelectedItem()));
updatePreviewFont();
}

void jCheckBox1_actionPerformed(ActionEvent e) {
StyleConstants.setBold(attributes, jCheckBox1.isSelected());
updatePreviewFont();
}

void jCheckBox2_actionPerformed(ActionEvent e) {
StyleConstants.setItalic(attributes, jCheckBox2.isSelected());
updatePreviewFont();
}
}

class FontColorChooser_jComboBox1_actionAdapter implements java.awt.event.ActionListener {
FontColorChooser adaptee;

FontColorChooser_jComboBox1_actionAdapter(FontColorChooser adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jComboBox1_actionPerformed(e);
}
}

class FontColorChooser_jComboBox2_actionAdapter implements java.awt.event.ActionListener {
FontColorChooser adaptee;

FontColorChooser_jComboBox2_actionAdapter(FontColorChooser adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jComboBox2_actionPerformed(e);
}
}

class FontColorChooser_jCheckBox1_actionAdapter implements java.awt.event.ActionListener {
FontColorChooser adaptee;

FontColorChooser_jCheckBox1_actionAdapter(FontColorChooser adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jCheckBox1_actionPerformed(e);
}
}

class FontColorChooser_jCheckBox2_actionAdapter implements java.awt.event.ActionListener {
FontColorChooser adaptee;

FontColorChooser_jCheckBox2_actionAdapter(FontColorChooser adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jCheckBox2_actionPerformed(e);
}
}
xxisxx 2003-11-28
  • 打赏
  • 举报
回复
感谢各位,我自己顶一下
项目名称:CC2012(经典仿QQ实例源码) 下载文件内容: word格式说明书, CC2012-C#源码, MYCC数据库与查询文件脚本 源码实现功能: 1.仿QQ的CC登录界面采用网络美女恩典作为主题类型,界面更好看又养眼,界面相似度达80%。 2.实现了记住密码的功能,甩开忘记密码的烦恼。 3.局域网内互动聊天,增加邻居感情,又到足不出门知天下事。 4.仿QQ窗口的抽屉式隐藏。 5.程序设有托盘菜单,不必打开页面也可进行在线状态设置。 6.注册窗口的头像选择,也采用QQ的显比例系列选择。 7.本程序采用了窗口特效,尽显完美独特风格。 8.CC2012主界面与QQ2012主界面的相似度达95%,内附(QQ内部部分图片)。 9.签名点击更改...这就不解系了,是人都知道QQ有这个功能,当然小编怎么可以放过。 10.最主要的当然是QQ好友列表啦,网上找了很多仿QQ列表组件,看效果都特别特别差,于是小编自己写了好友列表,高仿度足以以假乱真,采用双向加载更新数据。好友列表自动刷新,查看时也不会闪屏。 11.聊天窗口与QQ界面相似度达95%,可发送窗口抖动,和更改字体等...功能。 小编留言:还有很多功能。小编就不一一讲解了。下了自己去看吧。。。夜深了。该睡了 部分功能未完善。有意者帮忙改善下。
控件安装: 在File菜单下,选择OPEN...打开这个LssCalendar_D7.dpk文件, 在出现的Package窗口中先Compile一下, 然后单击Install。你可以在LssCalendar Tab下找到控件。 最后在Tools->Environment Options->Library Tab,Library path里增加LssCalendar.pas所在目录,就OK了。 编译说明:如果你没有AAFont,把第80行{$DEFINE AAFONT}删除; 如果你使用的Delphi版本低于7.0,去掉第81行{$DEFINE DELPHI5}前的注释; TLssCalendar (支持农历的月历控件) Version 2.00 2006-03-01 Ver 2.00 Luke.Wang 主要修改; 1。TLssCalendar 2.0向下兼容; 2。参照控件CnCalendar,增加了月份背景显示; 3。参照控件hxCalendar,增加了公历和农历节日显示; 4。参照控件LunarCalendar,增加Grid和Border显示,显示提示信息窗口; 5。将控件中的字体设置改为TLssColors属性,方便用户修改; 6。Title栏增加了上一年、上一月、下一月、下一年快捷按钮; 7。增加了BackImage属性,用户可以为每个月设置不同图片作为每月背景; 8。增加了TFestivalList类,用户可以订制和标记自己的节日; 9。可以显示英文星期名称、标题; 10。支持ISO8601日期格式(以星期一为一周开始); 11。用户可以自定义公历日期与农历或节日的显示比例; 11。根据nihaoqiang的修改,编写了DateUtils中一些function,以方便Delphi 5.0用户; (本控件只在Delphi7中测试过,使用Delphi其它版本的用户帮忙测试一下) 开发平台:WinXP SP2 + Delphi 7.0 不要删除本说明。 Luke Wang 2004.01
软件名称:智能关机(iCloseDown) 软件版本:1.65 软件大小:79 KB 软件语言:简体中文 软件授权:免费软件 使用平台:Windows 98 / Me / NT / 2000 / XP 特别说明:因为软件是免费的,所以我几乎没有任何经济来源。因此在我的网站上放了一些点击广告.希望大家去捧捧场,帮忙点击一下广告,这样可以一举两得:您可以使用免费的软件,我也可以得到小部分广告费以维持程序开发。 【软件命名】 因为本软件的是一个很智能关机程序,所以中文名称是《智能关机》。后面的英文部分是单词“Intelligent”(智能)和单词“CloseDown”(关机)缩写。 【主要功能】 本软件是一个免费的绿色的、体积非常小的智能关机软件,关机方式有“倒计时”、“定时一次”、“定时多次”(有两种方式,分为“方式1”和“方式2”)、“内存多少”和“程序监测”。除了关机外还可以重启、注销用户、锁定计算机、系统睡眠、关闭指定的程序、挂断拨号连接和打开指定的文件(包括程序,即“可执行文件(*.exe)”)。 【其他功能】 显示内存使用状态、释放部分内存、立即执行任务、打开或关闭光驱仓门、鼠标通功能、显示开始计时以后的已过时间以及还剩多少时间执行任务、执行任务时提示(可以用声音提示)、整点和半点报时、执行完任务后关闭自己、动态显示托盘图标和悬浮窗、启动和退出程序时使用特殊效果、启动软件后自动执行任务、随系统一起启动、锁定系统时显示图片、自动隐藏主窗口和悬浮窗、播放背景音乐、Win2000/XP系统下主窗口和悬浮窗透明、热键快速执行所有可执行的任务和显示隐藏主窗口。悬浮框可以调节大小、字体颜色可以自行设置。支持丰富的命令行功能。   ※本软件的使用非常简单,几乎每个功能均有气球提示(鼠标移动到相应的功能上停留几秒中即可出现提示)。所以本说明文件中只介绍比较复杂的功能和操作。 编程小屋 版权所有 © 2003-2004 网址:http://bcxw.126.com 邮箱:myok@263.net

62,630

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧