📄 magiclabel.java
字号:
import java.awt.*;
import javax.swing.*;
class MagicLabel extends JPanel{
private Font font;
private FontMetrics metrics;
private Color backcolor;
private int total,charWidth;
private char character[];
private Color color[],magicColor;
private char magic;
private int candisplay,indent,width;
MagicLabel (char ch,Color c){
UserData user=MainScreen.getInstance().getCurrentUser();
font=new Font("MonoSpaced",Font.PLAIN,user.getTypingFontSize());
metrics=getFontMetrics(font);
charWidth=metrics.charWidth('a');
indent=Utilities.getIndent();
width=Utilities.getLineWidth();
setPreferredSize(new Dimension(width+indent*2,20));
candisplay=(width-2*indent)/charWidth;
character=new char[150];
color=new Color[150];
magic=ch;
character[0]=' ';
color[0]=magicColor=c;
backcolor=user.getBackground();
}
public void paint(Graphics g){
g.setFont(font);
g.setColor(backcolor);
g.fillRect(0,0,getWidth(),getHeight());
int y=(getHeight()-metrics.getHeight())/2+metrics.getAscent();
for(int i=0;i<=total;i++){
g.setColor(color[i]);
g.drawString(String.valueOf(character[i]),indent+i*charWidth,y);
}
}
void setFontSize(int size){
if(size<12||size>24)
return;
font=new Font("MonoSpaced",Font.PLAIN,size);
metrics=getFontMetrics(font);
charWidth=metrics.charWidth('a');
repaint();
}
public void setBackground(Color c){
backcolor=c;
repaint();
}
public void removeMagicChar(){
character[total]=' ';
repaint();
}
public void addChar(char ch,Color c){
if(total>=candisplay)
return;
character[total]=ch;
color[total]=c;
total++;
character[total]=magic;
color[total]=magicColor;
repaint();
}
public boolean nextAllowed(){
return (total<candisplay) ? true : false;
}
public void removeChar(){
if(total>0){
total--;
character[total]=magic;
color[total]=magicColor;
repaint();
}
}
public char charAt(int index){
if(index<0||index>=total)
return '\0';
return character[index];
}
public void clearText(){
total=0;
character[0]=' ';
repaint();
}
public void showMagicChar(){
character[0]=magic;
repaint();
}
public String getText(){
return new String(character);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -