[問題] JTextArea放進去JScrollPane就跑不出來

看板java作者 (City*Mate)時間15年前 (2011/01/23 21:28), 編輯推噓0(003)
留言3則, 1人參與, 最新討論串1/1
單純把JTextArea放進去就可以顯示出來 一但把它放進去JScrollPane在放進去就跑不出來了 不知道問題發生在哪邊.... import java.text.DecimalFormat; import javax.swing.*; import java.awt.event.*; import java.util.*; import java.awt.*; import java.awt.event.*; public class hahaha extends JFrame implements KeyListener{ private JLabel lsharp,linput,loutput; private JTextArea output; private String input = ""; public hahaha(){ super ("hahaha"); Container c = getContentPane(); c.setLayout(null); /// lsharp = new JLabel ("#"); lsharp.setBounds(10, 10, 20, 30); lsharp.setFont(new Font("新細明體", Font.BOLD, 30)); linput = new JLabel (input); linput.setBounds(30, 10, 400, 30); linput.setFont(new Font("新細明體", Font.BOLD, 30)); loutput = new JLabel ("test"); loutput.setBounds(30, 50, 400, 30); loutput.setFont(new Font("新細明體", Font.BOLD, 30)); loutput.setForeground(Color.red); output = new JTextArea(); output.setSize(465, 350); output.setText("TEST"); output.setLocation(10,100); c.add(linput); c.add(lsharp); c.add(loutput); //c.add(output); c.add(new JScrollPane(output)); addKeyListener(this); setSize(500,500); setVisible(true); } public static void main(String args[]){ hahah calc = new P_9617066(); calc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void keyPressed(KeyEvent e) { if (e.getKeyChar()=='0'){ input = input+e.getKeyChar(); linput.setText(input); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.249.101

01/23 21:43, , 1F
該設 location & size 的是 ScrollPane 而不是 TextArea
01/23 21:43, 1F
嗯嗯 解決了 不過為什麼我本來的KeyListener卻因此失效了 藍色的部分 ※ 編輯: Ctmate 來自: 140.113.249.101 (01/23 21:52)

01/23 21:54, , 2F
因為 focus 在 TextArea 上,你的鍵盤事件被 TextArea 接收了
01/23 21:54, 2F
囧...有辦法處理嗎? 我加了setEditable(false); 結果還是一樣 還是要用linput.addKeyListener這樣子 ※ 編輯: Ctmate 來自: 140.113.249.101 (01/23 22:00)

01/24 00:05, , 3F
對TextArea設setFocusable(false)看看,但我並不確定可行
01/24 00:05, 3F
文章代碼(AID): #1DF2qHSi (java)