看板 java 關於我們 聯絡資訊
深感抱歉 早上趕著出門,忘了給code o(‧"‧)o 我主要是getContentPane.add(vc) 這個vc 是繼承Jpanel而來的 但是當我要把vc setVisible(true) 常出錯 時好時壞Orz /** * @(#)test.java * * * @author * @version 1.00 2008/6/18 */ import java.awt.*; import javax.swing.*; import javax.swing.border.*; import javax.media.*; import java.awt.event.*; import javax.media.Control; import java.io.*; class volumeChange extends JPanel implements ActionListener{ private GainControl gain; private JButton jbadd=new JButton("+"); private JButton jbsub=new JButton("-"); private JLabel jl=new JLabel("音量改變 "); private Player player; public volumeChange(Player tp){ super(); setSize(130,33); setBorder(new EtchedBorder(EtchedBorder.RAISED)); player=tp; gain=player.getGainControl(); add(jl); add(jbadd); jbadd.addActionListener(this); jbadd.setMargin( new Insets(0,2,0,2) ); add(jbsub); jbsub.addActionListener(this); jbsub.setMargin( new Insets(0,3,0,3) ); } public void actionPerformed(ActionEvent e){ if(e.getSource()==jbadd){ float t=gain.getLevel(); gain.setLevel( (float)(t+0.1>1.0?1.0:t+0.1) ); } if(e.getSource()==jbsub){ float t=gain.getLevel(); gain.setLevel( (float)(t-0.1<0?0:t-0.1) ); } } } public class test extends JFrame{ private volumeChange vc; private Player player; private Component cpc; private Component visualWindow; private JDesktopPane jdp; //public Player getPlayer(){ return player; } public test(String title)throws Exception{ super(title); setSize(500,500); setVisible(true); setLayout(null); addWindowListener( new WinAct(this) ); File file=new File("C:\\123.mpg"); player=Manager.createRealizedPlayer(new MediaLocator(file.toURI().toURL())); vc=new volumeChange(player); vc.setLocation(320,370); getContentPane().add(vc); cpc=player.getControlPanelComponent(); cpc.setBounds(50,370,260,30); getContentPane().add(cpc); visualWindow=player.getVisualComponent(); visualWindow.setBounds(50,50,400,300); getContentPane().add(visualWindow); } public static void main(String[] args)throws Exception{ test jf=new test("test"); } static class WinAct extends WindowAdapter{ private test jf; public WinAct(test tjf){ jf=tjf; } public void windowClosing(WindowEvent e) { jf.player.stop(); jf.player.deallocate(); jf.dispose(); System.exit(0); } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.23.226.13
TonyQ:你是不是忘了layout的設定 ?.? 06/19 14:42
TonyQ:嗄 打完才看到是null layout ~ 06/19 14:43
slalala:建議在MAIN的地方才將jf設 setVisiable 06/19 15:13
superlubu:應該是電腦太爛 XD 我試過跑沒有問題,可正常 display 06/19 15:18
superlubu:不過還是要等大概一秒才會見到東西出現 06/19 15:21
superlubu:另外... vc 根本沒有 call 過 setVisible 啊 XDDDD 06/19 15:23
privatewind:噗噗 是因為那時在找bug 才把那行用掉了 沒想到也可以 06/19 15:45
privatewind:所以就直接把不用setvisible(true) 的部份 給del了 囧 06/19 15:51
privatewind:感謝Slalala這樣的確就好了 06/20 00:08