⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menufont.java

📁 java文本编辑器
💻 JAVA
字号:
import java.awt.*; 
import java.awt.event.*; 

import javax.swing.*; 

public class MenuFont extends JDialog 
implements ItemListener, 
ActionListener, 
TextListener { 

CheckboxGroup gp; 
Checkbox plain, bold, italic, boldItalic; 
Choice fontNameChoice; 
TextField fontSizeTextField; 
List fontSizeList; 
TextField fontTextField; 
Button fontButtonOk; 
Button fontButtonCancel; 
int fontStyleInt = 0; 
boolean changed = true; 
int fontSizeMin = 10, fontSizeMax = 36, fontSizeChangedStep = 2; 

MenuFont(Frame frame, boolean modal) { 
super(frame, modal); 
} 

public Font myLayout(Font taFont) { 
this.getContentPane().setLayout(new GridBagLayout()); 
GridBagConstraints gbc = new GridBagConstraints(); 
gbc.gridwidth = 1; 
gbc.gridheight =1; 
gbc.weightx = 1; 
gbc.weighty = 1; 
gbc.fill = gbc.HORIZONTAL; 
gbc.anchor = gbc.CENTER; 

// a TextField for font size 
fontSizeTextField = new TextField(taFont.getSize() + "",14); 
fontSizeTextField.selectAll(); 
fontSizeTextField.addTextListener(this); 
gbc.gridx = 0; 
gbc.gridy = 1; 
getContentPane().add(fontSizeTextField, gbc); 

//CheckboxGroup for font style 
gp = new CheckboxGroup(); 
if(taFont.getStyle() == 0) 
plain = new Checkbox("PLAIN", true, gp); 
else 
plain = new Checkbox("PLAIN", false, gp); 
plain.addItemListener(this); 
if(taFont.getStyle() == 1) 
bold = new Checkbox("BOLD", true, gp); 
else 
bold = new Checkbox("BOLD", false, gp); 
bold.addItemListener(this); 
if(taFont.getStyle() == 2) 
italic = new Checkbox("ITALIC", true, gp); 
else 
italic = new Checkbox("ITALIC", false, gp); 
italic.addItemListener(this); 
if(taFont.getStyle() == 3) 
boldItalic = new Checkbox("BOLDITALIC", true, gp); 
else 
boldItalic = new Checkbox("BOLDITALIC", false, gp); 
boldItalic.addItemListener(this); 
gbc.gridx = 0; 
gbc.gridy = 0; 
getContentPane().add(plain, gbc); 
gbc.gridx = 1; 
gbc.gridy = 0; 
getContentPane().add(bold, gbc); 
gbc.gridx = 2; 
gbc.gridy = 0; 
getContentPane().add(italic, gbc); 
gbc.gridx = 3; 
gbc.gridy = 0; 
getContentPane().add(boldItalic, gbc); 

// a TextField + List for font size 
//fontSizeTextField = new TextField(taFont.getSize() + "",14); 
//fontSizeTextField.selectAll(); 
//fontSizeTextField.addTextListener(this); 
//gbc.gridx = 0; 
//gbc.gridy = 1; 
//add(fontSizeTextField, gbc); 
fontSizeList = new List(4, false); 
fontSizeList.addItemListener(this); 
int indexOfList = 0; 
boolean breakHere = false; 
for(int i = fontSizeMin; i <= fontSizeMax; i = i + fontSizeChangedStep) { 
if(!breakHere) { 
if(i != taFont.getSize()) { 
indexOfList++; 
} 
else { 
breakHere = true; 
} 
} 
fontSizeList.add(i + ""); 
} 
if(indexOfList < 0 || 
indexOfList > (fontSizeMax - fontSizeMin)/fontSizeChangedStep + 1) 
fontSizeList.select(0); 
else 
fontSizeList.select(indexOfList); 
gbc.gridx = 0; 
gbc.gridy = 2; 
getContentPane().add(fontSizeList, gbc); 

//Choice for font name 
gbc.gridx = 1; 
gbc.gridy = 1; 
fontNameChoice = new Choice(); 
fontNameChoice.addItemListener(this); 
fontNameChoice.add("Serif"); 
fontNameChoice.add("Courier"); 
fontNameChoice.add("Helvetica"); 
fontNameChoice.add("TimesRoman"); 
fontNameChoice.select(taFont.getName()); 
getContentPane().add(fontNameChoice, gbc); 

//two Button Ok Cancel 
fontButtonOk = new Button("Ok"); 
fontButtonOk.addActionListener(this); 
gbc.gridx = 2; 
gbc.gridy = 2; 
gbc.fill = gbc.NONE; 
getContentPane().add(fontButtonOk, gbc); 
fontButtonCancel = new Button("Cancel"); 
fontButtonCancel.addActionListener(this); 
gbc.gridx = 3; 
gbc.gridy = 2; 
getContentPane().add(fontButtonCancel, gbc); 

//a TextField for demo the font 
fontTextField = new TextField("Java awt"); 
fontTextField.setEditable(false); 
fontTextField.setSize(90, 60); 
fontTextField.setFont(taFont); 
gbc.weightx = 100; 
gbc.weighty = 230; 
gbc.gridx = 2; 
gbc.gridy = 1; 
gbc.gridwidth = 2; 
gbc.gridheight = 1; 
gbc.fill = gbc.BOTH; 
getContentPane().add(fontTextField, gbc); 

this.addWindowListener(new WindowAdapter() { 
public void windowClosing(WindowEvent e) { 
dispose(); 
} 
}); 
this.setLocation(120, 120); 
this.setResizable(false); 
this.setSize(480,160); 
this.setVisible(true); 
if(changed) 
return returnFont(); 
else 
return taFont; 
}//end of myLayout 

//ItemListener 
public void itemStateChanged(ItemEvent ie) { 
if(ie.getSource() == plain) { 
updateFontTextField(); 
} 
else if(ie.getSource() == bold) { 
updateFontTextField(); 
} 
else if(ie.getSource() == italic) { 
updateFontTextField(); 
} 
else if(ie.getSource() == boldItalic) { 
updateFontTextField(); 
} 
else if(ie.getSource() == fontNameChoice) { 
updateFontTextField(); 
} 
else if(ie.getSource() == fontSizeList) { 
List lf = (List)ie.getSource(); 
fontSizeTextField.setText(lf.getSelectedItem()); 
updateFontTextField(); 
} 

}//end of ItemListener 

//TextListener 
public void textValueChanged(TextEvent e) { 
int indexOfList = 0; 
boolean breakHere = false; 
int thisNum = 0; 
for(int i = fontSizeMin; i <= fontSizeMax; i = i + fontSizeChangedStep) { 
if(!breakHere) { 
try { 
thisNum = Integer.parseInt(fontSizeTextField.getText()); 
} catch(NumberFormatException nfe) { 
thisNum = 0; 
} 
if(i != thisNum) { 
indexOfList++; 
} 
else { 
breakHere = true; 
} 
} 
} 
if(indexOfList < 0 || 
indexOfList > (fontSizeMax - fontSizeMin)/fontSizeChangedStep + 1) 
fontSizeList.select(0); 
else 
fontSizeList.select(indexOfList); 
updateFontTextField(); 
}//end of TextListener 

//ActionListener 
public void actionPerformed(ActionEvent ae) { 
if(ae.getSource() == fontButtonOk) { 
changed = true; 
dispose(); 
} 
else if(ae.getSource() == fontButtonCancel) { 
changed = false; 
dispose(); 
} 
}//end of ActionListener 

public Font returnFont() { 
updateFontTextField(); 
return new Font(fontNameChoice.getSelectedItem(), 
fontStyleInt, 
Integer.parseInt(fontSizeList.getSelectedItem())); 
} 

private void updateFontTextField() { 
if(gp.getSelectedCheckbox().getLabel().equals("PLAIN")){ 
fontStyleInt = Font.PLAIN; 
} 
else if(gp.getSelectedCheckbox().getLabel().equals("BOLD")){ 
fontStyleInt = Font.BOLD; 
} 
else if(gp.getSelectedCheckbox().getLabel().equals("ITALIC")){ 
fontStyleInt = Font.ITALIC; 
} 
else if(gp.getSelectedCheckbox().getLabel().equals("BOLDITALIC")){ 
fontStyleInt = Font.BOLD + Font.ITALIC; 
} 
fontTextField.setFont(new Font(fontNameChoice.getSelectedItem(), 
fontStyleInt, 
Integer.parseInt(fontSizeList.getSelectedItem()))); 
} 

}//end of class MenuFont 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -