JavaMe 编程连载(8) - 换肤的实现

2024-03-12 17:48
文章标签 java 实现 编程 连载 换肤

本文主要是介绍JavaMe 编程连载(8) - 换肤的实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【问题描述】

kf156(亚日)在多级菜单实现中,实现了换肤的功能。本文借鉴了kf156(亚日)的部分代码,利用JavaMe连载(7)-数据永久存储所提到的rms实现了换肤的处理。

【代码清单】

Color.java

(借鉴了kf156(亚日)的代码,有所改动,感谢署名为kf156(亚日)的网友,他的代码风格确实很好)

package com.token.view.components;
/**
* 颜色类
* 
* @author kf156(亚日)
* 
* @Email kf156@QQ.com
* 
* @CopyrightNotice 此代码仅供学习交流,您可以使用并传播本源代码,但请保留作者信息。切勿商用,若有需要,请先于本人联系。
*/
public class Color {
public static int strong = 0xFF8C00;//令牌显示颜色
public static int warning1 = 0xFF4500;// 警告颜色
public static int warning2 = 0xFF0000;// 警告颜色
public static int error = 0xFF0000;// 错误颜色
public static int background = 0xF0FAE6;// 背景颜色
public static int menuFrame = 0xB8E58A;// 窗体框架颜色
public static int label = 0xF0F8FF;// 标题颜色
public static int text = 0x314F12;// 正文颜色
public static int selectText = 0xFFFFFF;// 被选择后的正文颜色
public static int selectBg = 0x548720;// 被选择后的背景颜色
public static int cmdBarTop = 0x9FDB63;// 命令栏上半部分颜色
public static int cmdBarBottom = 0x81D130;// 命令栏下半部分颜色
public static int menuBg = 0xE0F5CB;// 命令菜单主背景色
public static int cmdSelectTop = 0x7DAB4F;// 命令菜单选中项上半部分颜色
public static int cmdSelectBottom = 0x5B9422;// 命令菜单选中项下半部分颜色
public static int linkClick = 0xFF0000;// 超链接点击后的颜色
public static int frame = 0x458B00;//边框颜色
public static int frameBg = 0x556B2F;//边框背景颜色
public static final int GREY = 0xBBBBBB;// 灰边框
public static final int BLACK = 0x0;// 黑色
public static final int WHITE = 0xFFFFFF;// 白色
public static final int TRANSLUCENCY_WRITE = 0x55FFFFFF;// 白色半透明
public static final int TRANSLUCENCY_BLACK = 0x55000000;// 黑色半透明
public static final byte STYLE_RED = 0;// 红色
public static final byte STYLE_ORANGE = 1;// 橙色
public static final byte STYLE_YELLOW = 2;// 黄色
public static final byte STYLE_GREEN = 3;// 绿色
public static final byte STYLE_LIME = 4;// 酸橙色
public static final byte STYLE_CYAN = 5;// 青色
public static final byte STYLE_AQUA = 6;// 浅绿色
public static final byte STYLE_SKY_BLUE = 7;// 天蓝色
public static final byte STYLE_BLUE = 8;// 蓝色
public static final byte STYLE_PURPLE = 9;// 紫色
public static final byte STYLE_FUCHSIA = 10;// 紫红色
public static final byte STYLE_MAGENTA = 11;// 红紫色
public static final byte STYLE_BLACK = 12;// 黑色
public static int colorName = STYLE_GREEN;// 风格名称
// 红色风格H0(#FF0000)
private static void redColor() {
background = 0xFAE7E7;// 背景颜色
label = 0xFAEBD7;// 标题颜色
text = 0x4F1212;// 正文颜色
// selectTextColor = 0xFFFFFF;// 被选择后的正文颜色
menuFrame = 0xE58A8A;// 窗体框架颜色
menuBg = 0xF5CBCB;// 命令菜单主背景色
selectBg = 0x872020;// 被选择后的背景颜色
cmdBarTop = 0xDB6363;// 命令栏上半部分颜色
cmdBarBottom = 0xD13030;// 命令栏下半部分颜色
cmdSelectTop = 0xAB4F4F;// 命令菜单选中项上半部分颜色
cmdSelectBottom = 0x942222;// 命令菜单选中项下半部分颜色
frame = 0xF70909;//边框颜色
frameBg = 0xD52B2B;//边框背景颜色
}
// 橙色风格H30(#FF7F00)
private static void orangeColor() {
background = 0xFAF0E6;// 背景颜色
label = 0xFFE4B5;// 标题颜色
text = 0x4F3112;// 正文颜色
// selectTextColor = 0xFFFFFF;// 被选择后的正文颜色
menuFrame = 0xE5B88A;// 窗体框架颜色
menuBg = 0xF5E0CB;// 命令菜单主背景色
selectBg = 0x875420;// 被选择后的背景颜色
cmdBarTop = 0xDB9F63;// 命令栏上半部分颜色
cmdBarBottom = 0xD18130;// 命令栏下半部分颜色
cmdSelectTop = 0xAB7D4F;// 命令菜单选中项上半部分颜色
cmdSelectBottom = 0x945B22;// 命令菜单选中项下半部分颜色
frame = 0xF76809;//边框颜色
frameBg = 0xD56F2B;//边框背景颜色
}
// 黄色风格H60(#FFFF00)
private static void yellowColor() {
background = 0xFAFAE6;// 背景颜色
label = 0xFFFACD;// 标题颜色
text = 0x4F4F12;// 正文颜色
// selectText = 0xFFFF00;// 被选择后的正文颜色
menuFrame = 0xE5E58A;// 窗体框架颜色
menuBg = 0xF5F5CB;// 命令菜单主背景色
selectBg = 0x878720;// 被选择后的背景颜色
cmdBarTop = 0xDBDB63;// 命令栏上半部分颜色
cmdBarBottom = 0xD1D130;// 命令栏下半部分颜色
cmdSelectTop = 0xABAB4F;// 命令菜单选中项上半部分颜色
cmdSelectBottom = 0x949422;// 命令菜单选中项下半部分颜色
frame = 0xF7C709;//边框颜色
frameBg = 0xD5D52B;//边框背景颜色
}
// 绿色风格H90(#80FF00)
private static void greenColor() {
background = 0xF0FAE6;// 背景颜色
label = 0xF0F8FF;// 标题颜色
text = 0x314F12;// 正文颜色
// selectTextColor = 0xFFFFFF;// 被选择后的正文颜色
menuFrame = 0xB8E58A;// 窗体框架颜色
menuBg = 0xE0F5CB;// 命令菜单主背景色
selectBg = 0x548720;// 被选择后的背景颜色
cmdBarTop = 0x9FDB63;// 命令栏上半部分颜色
cmdBarBottom = 0x81D130;// 命令栏下半部分颜色
cmdSelectTop = 0x7DAB4F;// 命令菜单选中项上半部分颜色
cmdSelectBottom = 0x5B9422;// 命令菜单选中项下半部分颜色
frame = 0x458B00;//边框颜色
frameBg = 0x556B2F;//边框背景颜色
}
// 酸橙色风格H120(0x00FF00)
private static void limeColor() {
background = 0xE6FAE6;// 背景颜色
label = 0xEEE9BF;// 标题颜色
text = 0x124F12;// 正文颜色
// selectTextColor = 0xFFFFFF;// 被选择后的正文颜色
menuFrame = 0x8AE58A;// 窗体框架颜色
menuBg = 0xCBF5CB;// 命令菜单主背景色
selectBg = 0x208720;// 被选择后的背景颜色
cmdBarTop = 0x63DB63;// 命令栏上半部分颜色
cmdBarBottom = 0x30D130;// 命令栏下半部分颜色
cmdSelectTop = 0x4FAB4F;// 命令菜单选中项上半部分颜色
cmdSelectBottom = 0x229422;// 命令菜单选中项下半部分颜色
frame = 0x09F738;//边框颜色
frameBg = 0x2BD54D;//边框背景颜色
}
// 青色风格H150(0x00FF80)
private static void cyanColor() {
background = 0xE6FAF0;// 背景颜色
label = 0xE0FFFF;// 标题颜色
text = 0x124F31;// 正文颜色
// selectTextColor = 0xFFFFFF;// 被选择后的正文颜色
menuFrame = 0x8AE5B8;// 窗体框架颜色
menuBg = 0xCBF5E0;// 命令菜单主背景色
selectBg = 0x208754;// 被选择后的背景颜色
cmdBarTop = 0x63DB9F;// 命令栏上半部分颜色
cmdBarBottom = 0x30D181;// 命令栏下半部分颜色
cmdSelectTop = 0x4FAB7D;// 命令菜单选中项上半部分颜色
cmdSelectBottom = 0x22945B;// 命令菜单选中项下半部分颜色
frame = 0x4DB34D;//边框颜色
frameBg = 0x8AB34D;//边框背景颜色
}
// 浅绿色风格H180(#00FFFF)
private static void aquaColor() {
background = 0xE6FAFA;// 背景颜色
label = 0xE0EEE0;// 标题颜色
text = 0x445500;// 正文颜色
// selectTextColor = 0xFFFFFF;// 被选择后的正文颜色
menuFrame = 0x88AA55;// 窗体框架颜色
menuBg = 0xE6FAFA;// 命令菜单主背景色
selectBg = 0xAECC33;// 被选择后的背景颜色
cmdBarTop = 0xBDE61A;// 命令栏上半部分颜色
cmdBarBottom = 0xB8DD22;// 命令栏下半部分颜色
cmdSelectTop = 0xB8DD22;// 命令菜单选中项上半部分颜色
cmdSelectBottom = 0xB3D52B;// 命令菜单选中项下半部分颜色
frame = 0x8E8E38;//边框颜色
frameBg = 0x8B8B00;//边框背景颜色
}
// 天蓝色风格H210(#0080FF)
private static void skyBlueColor() {
background = 0xE6F0FA;// 背景颜色
label = 0xE0FFFF;// 标题颜色
text = 0x12314F;// 正文颜色
// selectTextColor = 0xFFFFFF;// 被选择后的正文颜色
menuFrame = 0x8AB8E5;// 窗体框架颜色
menuBg = 0xCBE0F5;// 命令菜单主背景色
selectBg = 0x205487;// 被选择后的背景颜色
cmdBarTop = 0x639FDB;// 命令栏上半部分颜色
cmdBarBottom = 0x3081D1;// 命令栏下半部分颜色	
cmdSelectTop = 0x4F7DAB;// 命令菜单选中项上半部分颜色
cmdSelectBottom = 0x225B94;// 命令菜单选中项下半部分颜色
frame = 0x0997F7;//边框颜色
frameBg = 0x2BB3D5;//边框背景颜色
}
// 深蓝色风格H240(#0000FF)
private static void blueColor() {
background = 0xE6E6FA;// 背景颜色
label = 0xE0EEEE;// 标题颜色
text = 0x12124F;// 正文颜色
// selectTextColor = 0xFFFFFF;// 被选择后的正文颜色
menuFrame = 0x8A8AE5;// 窗体框架颜色
menuBg = 0xCBCBF5;// 命令菜单主背景色
selectBg = 0x202087;// 被选择后的背景颜色
cmdBarTop = 0x6363DB;// 命令栏上半部分颜色
cmdBarBottom = 0x3030D1;// 命令栏下半部分颜色
cmdSelectTop = 0x4F4FAB;// 命令菜单选中项上半部分颜色
cmdSelectBottom = 0x222294;// 命令菜单选中项下半部分颜色
frame = 0x0909F7;//边框颜色
frameBg = 0x2B2BD5;//边框背景颜色
}
// 紫色风格H270(#8000FF)
private static void purpleColor() {
background = 0xF0E6FA;// 背景颜色
label = 0xFDF5E6;// 标题颜色
text = 0x31124F;// 正文颜色
// selectTextColor = 0xFFFFFF;// 被选择后的正文颜色
menuFrame = 0xB88AE5;// 窗体框架颜色
menuBg = 0xE0CBF5;// 命令菜单主背景色
selectBg = 0x542087;// 被选择后的背景颜色
cmdBarTop = 0x9F63DB;// 命令栏上半部分颜色
cmdBarBottom = 0x8130D1;// 命令栏下半部分颜色
cmdSelectTop = 0x7D4FAB;// 命令菜单选中项上半部分颜色
cmdSelectBottom = 0x5B2294;// 命令菜单选中项下半部分颜色
frame = 0x6809F7;//边框颜色
frameBg = 0x6F2BD5;//边框背景颜色
}
// 紫红色风格H300(#FF00FF)
private static void fuchsiaColor() {
background = 0xFAE6FA;// 背景颜色
label = 0xFAF0E6;// 标题颜色
text = 0x4F124F;// 正文颜色
// selectTextColor = 0xFFFFFF;// 被选择后的正文颜色
menuFrame = 0xE58AE5;// 窗体框架颜色
menuBg = 0xF5CBF5;// 命令菜单主背景色
selectBg = 0x872087;// 被选择后的背景颜色
cmdBarTop = 0xDB63DB;// 命令栏上半部分颜色
cmdBarBottom = 0xD130D1;// 命令栏下半部分颜色	
cmdSelectTop = 0xAB4FAB;// 命令菜单选中项上半部分颜色
cmdSelectBottom = 0x942294;// 命令菜单选中项下半部分颜色
frame = 0x9709F7;//边框颜色
frameBg = 0xB32BD5;//边框背景颜色
}
// 红紫色风格H330(#FF007F)
private static void magentaColor() {
background = 0xFAE6F0;// 背景颜色
label = 0xFFEFD5;// 标题颜色
text = 0x4F1231;// 正文颜色
// selectTextColor = 0xFFFFFF;// 被选择后的正文颜色
menuFrame = 0xE58AB8;// 窗体框架颜色
menuBg = 0xF5CBE0;// 命令菜单主背景色
selectBg = 0x872054;// 被选择后的背景颜色
cmdBarTop = 0xDB639F;// 命令栏上半部分颜色
cmdBarBottom = 0xD13081;// 命令栏下半部分颜色		
cmdSelectTop = 0xAB4F7D;// 命令菜单选中项上半部分颜色
cmdSelectBottom = 0x94225B;// 命令菜单选中项下半部分颜色
frame = 0xC709F7;//边框颜色
frameBg = 0xD52BD5;//边框背景颜色
}
//黑色风格(#000000)
private static void blackColor() {
background = 0xEDEDED;// 背景颜色
label = 0xEAEAEA;// 标题颜色
text = 0x030303;// 正文颜色
// selectTextColor = 0xFFFFFF;// 被选择后的正文颜色
menuFrame = 0x2E2E2E;// 窗体框架颜色
menuBg = 0xC9C9C9;// 命令菜单主背景色
selectBg = 0x4A4A4A;// 被选择后的背景颜色
cmdBarTop = 0x3B3B3B;// 命令栏上半部分颜色
cmdBarBottom = 0x383838;// 命令栏下半部分颜色
cmdSelectTop = 0x2E2E2E;// 命令菜单选中项上半部分颜色
cmdSelectBottom = 0x0D0D0D;// 命令菜单选中项下半部分颜色
frame = 0x0A0A0A;//边框颜色
frameBg = 0x636363;//边框背景颜色
}
// 风格切换
public static void nextColor() {
set(++colorName);
}
/**
* 设置颜色
* 
*/
public static void set(int color) {
// System.out.println(color);
switch (color) {
case STYLE_RED:// 红色
redColor();
break;
case STYLE_ORANGE:// 橙色
orangeColor();
break;
case STYLE_YELLOW:// 黄色
yellowColor();
break;
case STYLE_GREEN:// 绿色
greenColor();
break;
case STYLE_LIME:// 酸橙色
limeColor();
break;
case STYLE_CYAN:// 青色
cyanColor();
break;
case STYLE_AQUA:// 浅绿色
aquaColor();
break;
case STYLE_SKY_BLUE:// 天蓝色
skyBlueColor();
break;
case STYLE_BLUE:// 蓝色
blueColor();
break;
case STYLE_PURPLE:// 紫色
purpleColor();
break;
case STYLE_FUCHSIA:// 紫红色
fuchsiaColor();
break;
case STYLE_MAGENTA:// 红紫色
magentaColor();
break;
case STYLE_BLACK:// 红紫色
blackColor();
break;
default:// 颜色循环完毕,返回红色
colorName = STYLE_RED;
redColor();// RED
break;
}
}
// 设置新风格
public static void setNewColor(int newColor) {
background = newColor;
menuFrame = background - 0x3A155D;
label = background - 0x25A8E5;
text = background - 0xC0ACD5;
selectText = background + 0x100518;
selectBg = background - 0x9D72C7;
cmdBarTop = background - 0x531E84;
cmdBarBottom = background - 0x742AB8;
}
}

 

ConfigureDataItem.java

package com.token.model;
//import com.token.util.StringDealMethod;
public class ConfigureDataItem {
private int id;
public String color = null;
public ConfigureDataItem(String color){
this.color = color;
}
public ConfigureDataItem(int id,byte[] data){
this.id=id;
//String temp=new String(data);
//String temp_sub[] = StringDealMethod.split(temp, ",");
this.color = new String(data);
}
public int getId(){
return id;
}
public void setId(int id){
this.id=id;
}
public String getColor(){
return color;
}
public void setData(String color){
this.color = color;
}
public byte[] getBytes(){
String temp=null;
if(color==null){
return null;
}else{
temp=color;
}
return temp.getBytes();
}
}


ConfigureDataRecord.java

package com.token.util;
import java.util.Vector;
import javax.microedition.rms.RecordComparator;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreException;
import com.token.model.ConfigureDataItem;
public class ConfigureDataRecord {
private static final String RECORDSTORE_NAME="CONFIG_DB";
private static RecordStore info;
public ConfigureDataRecord(){
}
//打开RecordStore,没有则创建
public void openDataBase() {
try {
info = RecordStore.openRecordStore(RECORDSTORE_NAME, true);
}catch (RecordStoreException ex) {            
info =null;
}
}
//关闭RecordStore
public void closeDataBase() {
if (info!= null) {
try {
info.closeRecordStore();
info=null;
} catch (RecordStoreException ex) {}
}
}
//增加记录
public int db_addRecord(ConfigureDataItem item) {
try {
this.openDataBase();
byte[] data=item.getBytes();
int id=info.getNextRecordID();
info.addRecord(data,0,data.length);
this.closeDataBase();
return id;
} catch (RecordStoreException ex) { }
return -1;
}
//更新记录
public void db_updateRecord(ConfigureDataItem item){
try {
this.openDataBase();      
byte[] data=item.getBytes();
info.setRecord(item.getId(),data,0,data.length);
this.closeDataBase();
} catch (RecordStoreException ex) { }
}
//访问一条记录
public ConfigureDataItem db_getRecord(int id){
ConfigureDataItem item=null;
try {
this.openDataBase();
item = new ConfigureDataItem(id,info.getRecord(id));
this.closeDataBase();
} catch (RecordStoreException ex) { }
return item;
}
//删除一条记录
public void db_deleteRecord(int id){
try {
this.openDataBase();
info.deleteRecord(id);
this.closeDataBase();
} catch (RecordStoreException ex) {}
}
//删除所有记录
public void db_deleteAllRecord(){
try {
RecordStore.deleteRecordStore(RECORDSTORE_NAME);
} catch (RecordStoreException ex) {}
}
//访问所有记录
public Vector db_getRecords(){
Vector items=new Vector(10,3);
this.openDataBase();//打开RecordStore
RecordEnumeration enum1=null;
int ind=0;
try{
ConfigureDataItem item=null;
enum1=info.enumerateRecords(null,new InnerComparator(),false);
while(enum1.hasPreviousElement()){
ind=enum1.previousRecordId();
item=new ConfigureDataItem(ind,info.getRecord(ind));
items.addElement(item);
}
}catch(Exception ex){ex.printStackTrace();}
finally{
try{
enum1.destroy();
}catch(Exception e){}
this.closeDataBase();//关闭RecordStore
}//end finally
return items;
}
//一个简单的比较器
private class InnerComparator implements RecordComparator{
public int compare(byte[] rec1, byte[] rec2){
if(rec1.length>rec2.length)
return FOLLOWS;
else if(rec1.length<rec2.length)
return PRECEDES;
else 
return EQUIVALENT;
}
}
}


Configure.java

package com.token.util;
import com.token.model.ConfigureDataItem;
import com.token.view.components.Color;
public class Configure 
{
private static ConfigureDataRecord confRecord = new ConfigureDataRecord();
public Configure()
{
}
public static void configureColor()
{
int id = 1;
if(confRecord.db_getRecord(1)==null)
{
ConfigureDataItem confItem = new ConfigureDataItem(1,"3".getBytes());
id=confRecord.db_addRecord(confItem);
}
ConfigureDataItem confItem1 = confRecord.db_getRecord(id);
Color.set(Integer.valueOf(confItem1.getColor()).intValue());
}
}


【分析】

1 在启动时,调用

Configure.configureColor();

对颜色进行配置。

 

2 换肤的实现

在按键事件keyPressed()中,对按键进行判断。

(1) 设置颜色,调用

Color.set(color);

(2) 更新颜色配置记录

ConfigureDataItem confItem = new ConfigureDataItem(1,String.valueOf(color).getBytes());
confRecord.db_updateRecord(confItem);

(3) 刷新画面

String flag = "0";
Object [] args = {flag,""};
controller.handleEvent(UIController.EventID.EVENT_MAIN_SCREEN, args);

【代码清单】

protected void keyPressed(int keyCode) 
{
...
switch(currentlySelectedIndex)
{
...
case 4:
{
color = Integer.valueOf(confRecord.db_getRecord(1).color).intValue();
if(color<12)
{
color++;
}
else
{
color = 0;
}
Color.set(color);
ConfigureDataItem confItem = new ConfigureDataItem(1,String.valueOf(color).getBytes());
confRecord.db_updateRecord(confItem);
String flag = "0";
Object [] args = {flag,""};
controller.handleEvent(UIController.EventID.EVENT_MAIN_SCREEN, args);
break;
}
}
....
}

换肤后,将永久生效。实现效果,如图1、2所示:

图1 换肤前

 

图2 换肤后

 

 

 

 

 

转载请标明出处,仅供学习交流,勿用于商业目的

Copyright @ http://blog.csdn.net/tandesir

 

 

 

 

 

 


 

 

这篇关于JavaMe 编程连载(8) - 换肤的实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/802082

相关文章

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

基于Java实现回调监听工具类

《基于Java实现回调监听工具类》这篇文章主要为大家详细介绍了如何基于Java实现一个回调监听工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录监听接口类 Listenable实际用法打印结果首先,会用到 函数式接口 Consumer, 通过这个可以解耦回调方法,下面先写一个

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

Qt中QGroupBox控件的实现

《Qt中QGroupBox控件的实现》QGroupBox是Qt框架中一个非常有用的控件,它主要用于组织和管理一组相关的控件,本文主要介绍了Qt中QGroupBox控件的实现,具有一定的参考价值,感兴趣... 目录引言一、基本属性二、常用方法2.1 构造函数 2.2 设置标题2.3 设置复选框模式2.4 是否

Java字符串处理全解析(String、StringBuilder与StringBuffer)

《Java字符串处理全解析(String、StringBuilder与StringBuffer)》:本文主要介绍Java字符串处理全解析(String、StringBuilder与StringBu... 目录Java字符串处理全解析:String、StringBuilder与StringBuffer一、St

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指