2012-10-31 47 views
0

我用下面的代码在图像上显示一个jbutton,但是直到我将光标放在按钮位置上时才显示他按钮。代码中的校正是什么?如何在图像上显示JButton?

文件Project31.java

package project31; 

import javax.swing.JFrame; 
import java.awt.*; 

public class Project31 { 


    public static void main(String[] args) { 

     studentinfo studentinfo=new studentinfo(); 
     studentinfo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     studentinfo.setSize(1368,768); 
     studentinfo.setVisible(true); 
    } 
} 

文件studentinfo.java

package project31; 


import java.io.*; 
import javax.sound.sampled.*; 
import sun.audio.*; 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class studentinfo extends JFrame{ 

    private JButton plainJButton; 
    Image stuinfo=Toolkit.getDefaultToolkit().getImage("stuinfo.png"); 

    public studentinfo(){ 
      setLayout(new FlowLayout()); 
      plainJButton=new JButton("Search"); 
      add (plainJButton); 
      ButtonHandler handler=new ButtonHandler(); 
      plainJButton.addActionListener(handler); 
    } 

    private class ButtonHandler implements ActionListener{ 

     public void actionPerformed(ActionEvent event){ 

     } 
    } 

    public void paint(Graphics g){ 
     g.drawImage(stuinfo,16,10,this); 
    } 

} 

回答

1

你要重绘按钮的为好。但我会建议你使用JPanel并在其上绘制图像。然后绘制的JButton:

class ImagePanel extends JPanel{ 
    private Image stuinfo; 
    public ImagePanel() { 
     stuinfo = Toolkit.getDefaultToolkit().getImage("stuinfo.png"); 
    } 
    public void paintComponent(Graphics g){ 
     super.paintComponent(g); 
     g.drawImage(stuinfo,16,10,this); 
    } 
} 

然后:

1. Create your JFrame 
2. Add an object of ImagePanel to the JFrame with `setContentPane()` 
3. Add your button. 

现在你对图像的顶部的按钮。