2013-10-10 21 views
0

我试图使用下面显示的代码使用Java构建记事本的字体窗口。但是,我在设置列表框内指定的文本大小时遇到​​问题。Java中的列表框

我试图得到相应的大小对应于所选项目的索引,但找不到任何此类方法。

f = new Frame("Font"); 
f.setLayout(new GridLayout(3, 3)); 
b1 = new Button("OK"); 
l1 = new Label("Font :"); 
l2 = new Label("Size :"); 
l3 = new Label("Font Style :"); 
lb1 = new List(10, false); 
lb2 = new List(10, false); 
lb3 = new List(5, false); 
String [] s = {"Times New Roman", "Arial", "Verdana", "Trebuchet MS", "Papyrus","Monotype Corsiva","Microsoft Sans Serif", "Courier", "Courier New"}; 
for(int i = 0; i < s.length; i++) 
{ 
    lb1.add(s[i]); 
} 
for(int i = 8; i <=72; i += 2) 
{ 
    lb2.add(i + ""); 
} 
String [] s1 = {"BOLD", "ITALIC", "PLAIN"}; 
for(int i = 0; i < s1.length; i++) 
{ 
    lb3.add(s1[i]); 
} 

f.add(l1); 
f.add(l2); 
f.add(l3); 
f.add(lb1); 
f.add(lb2); 
f.add(lb3); 
f.add(b1); 
b1.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent ae) 
    { 
     if(lb3.isIndexSelected(0)) 
      fo = new Font(lb1.getSelectedItem(), Font.BOLD, **lb2.getSelectedIndex**()); 
     else if(lb3.isIndexSelected(1)) 
      fo = new Font(lb1.getSelectedItem(), Font.ITALIC, lb2.getSelectedIndex()); 
     else 
      fo = new Font(lb1.getSelectedItem(), Font.PLAIN, lb2.getSelectedIndex()); 
     ta1.setFont(fo); 
     MyFrame15.f.dispose(); 
    } 
}); 
f.setSize(300, 300); 
Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); 
int x = (int)((d.getWidth()/2) - 200); 
int y = (int)((d.getHeight()/2) - 200); 
f.setLocation(x, y); 
f.setVisible(true); 
} 
+0

请有人回答我的问题尽快... –

+0

什么家伙plzzzz有人回答我的问题。 –

回答

1

要获得用户所需的大小,我们可以使用: lb2.getSelectedItem(); 它返回一个字符串,但Font构造函数的第三个参数需要一个整数。因此,我们使用Integer类的parseInt()方法将接收到的字符串转换为整数。代码如下: Font(lb1.getSelectedItem(), Font.BOLD,Integer.parseInt(lb2.getSelectedItem()));

-1

我建议你为此使用Swing。您可以从Text Component Features上的Swing教程开始,该教程已经包含一个可以实现您想要的工作示例。