2013-10-10 48 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教程開始,該教程已經包含一個可以實現您想要的工作示例。