1. 程式人生 > >java懸浮控制元件、IDE的懸浮窗(帶代…

java懸浮控制元件、IDE的懸浮窗(帶代…

學習過程極其艱難,網上資料凌亂。先上圖 java懸浮控制元件、IDE的懸浮窗(帶程式碼提示)多層layout顯示、控制元件置頂等——(一)

事情起因:想自己寫個簡單的程式設計IDE。   需要實現這樣一個功能,敲了幾個字母以後,彈出個jlist讓我選擇用哪些函式。然後一直就卡在不懂怎麼把這個jlist合適地疊加在上面的方式了。於是從各種textarea、textpane啊、找到popupmenu啊再找到layer設定啊,總算有個思路。   不過目前這個方法有個缺陷,就是這個jList不能超出這個視窗。而一個正常的IDE顯然可以實現這樣的彈出式選單。 java懸浮控制元件、IDE的懸浮窗(帶程式碼提示)多層layout顯示、控制元件置頂等——(一)

目前算是個折中手段,以下是java程式碼: import java.awt.Color; import java.awt.Dimension; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.DefaultListModel; import javax.swing.JEditorPane; import javax.swing.JFrame; import javax.swing.JLayeredPane; import javax.swing.JList; public final class JLayeredPane1 extends JFrame {     public JLayeredPane1() {         super("JLayeredPane");         JList jl1 = new JList();         DefaultListModel dlm = new DefaultListModel();         dlm.addElement("asdfwfewfw");         dlm.addElement("asdfwf124234ewfw");         dlm.addElement("asdfwf123ewfw");         jl1.setModel(dlm);         JEditorPane jep1 = new JEditorPane();         jep1.setBackground(Color.yellow);         jep1.setBounds(0, 0, 300, 300); //在這裡調整控制元件的顯示位置和大小         jl1.setBounds(100,100,100,400); //在這裡調整控制元件的顯示位置和大小         JLayeredPane layeredPane = getLayeredPane();         layeredPane.add(jep1, 10, 1);         layeredPane.add(jl1, 10, 0);         setSize(new Dimension(280, 280));         addWindowListener(new WindowAdapter() {             @Override             public void windowClosing(WindowEvent e) {                 System.exit(0);             }         });         this.setVisible(true);     }     public static void main(String[] args) {         new JLayeredPane1();     } }