2013-03-28 12 views
0
public class Interface 
{ 

    private static JMenuItem mntmNewMenuItem; 
final JPanel panel = new JPanel(); 
private JTable table; 

public Interface() 
{ 

    JFrame f= new JFrame("Content Provider Generator"); 
    f.setFont(new Font("Aharoni", Font.BOLD, 12)); 
    f.setForeground(Color.GRAY); 
    f.getContentPane().setBackground(Color.WHITE); 


    //JToolbar// 

    JToolBar toolBar = new JToolBar(); 
     f.getContentPane().add(toolBar, BorderLayout.EAST); 

    //MenuButton// 

     JButton button = new JButton(); 
     button.setIcon(new ImageIcon 
     (Interface.class.getResource("/javax/swing/plaf/metal/icons/ocean/menu.gif"))); 
     toolBar.add(button); //added to JToolbar 

     JPopupMenu popupMenu = new JPopupMenu(); 
     addPopup(button, popupMenu); 

     //popupmenu 
     mntmNewMenuItem = new JMenuItem("Table"); 

** // WHEN彈出菜單(表)被點擊// * ** * ** *上** * ** * ** * ** * *錯誤在通過URL輸入圖像並將其添加面板

mntmNewMenuItem.addActionListener(new ActionListener() { 
      //This method will be called whenever you click the button. 
      public void actionPerformed(ActionEvent e) { 
       JLabel label = new JLabel(); 
      try { 
label.setIcon(new ImageIcon(new URL 
        ("file:/C:/Users/Ashad/JunoWorkspace/FYP1/table.png"))); 
      } catch (MalformedURLException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 

       panel.add(label); 

      } 
     }); 

** * ** * ** * ** * ** * ** // ** * ** * ** * ** * ** * ** * ** * ** * **

 popupMenu.add(mntmNewMenuItem); 


     //Image Import on click to panel 

     mntmNewMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, 
                   InputEvent.CTRL_MASK)); 
     mntmNewMenuItem.setIcon(newImageIcon(Interface.class.getResource 
      ("/javax/swing/plaf/metal/icons/ocean/menu.gif"))); 


     //////////////////MenuBar///////////////////////// 
     JMenuBar menuBar = new JMenuBar(); 
     f.getContentPane().add(menuBar, BorderLayout.NORTH); 



     //Menus added/initialized in MENUBAR// 


     JMenu mnNewMenu = new JMenu("File"); 
     menuBar.add(mnNewMenu); 

     JMenuItem mntmNew = new JMenuItem("New"); //mntmNew 
     mntmNew.setIcon(new ImageIcon(Interface.class.getResource 
           ("/javax/swing/plaf/metal/icons/ocean/file.gif"))); 
      mnNewMenu.add(mntmNew); 

     JMenuItem mntmSaveAs = new JMenuItem("Save As..."); 
     mntmSaveAs.setIcon(new ImageIcon(Interface.class.getResource 
           ("/javax/swing/plaf/metal/icons/ocean/floppy.gif"))); 
     mnNewMenu.add(mntmSaveAs); 

     JMenuItem mntmSave = new JMenuItem("Save"); 
     mntmSave.setIcon(new ImageIcon 
     (Interface.class.getResource("/javax/swing/plaf/metal/icons/ocean/floppy.gif"))); 
     mnNewMenu.add(mntmSave); 

     //M_Exit 
     JMenuItem mntmExit = new JMenuItem("Exit"); 


     //When exit of the menuBar is clicked// 
     mntmExit.addActionListener(new ActionListener() 
     { 
     public void actionPerformed(ActionEvent e) {System.exit(0);} 
     }); 


     mnNewMenu.add(mntmExit); 



     JMenu mnEdit = new JMenu("Edit"); 
     menuBar.add(mnEdit); 

     JMenuItem mntmUndo = new JMenuItem("Undo"); 
     mnEdit.add(mntmUndo); 

     JMenuItem mntmRedo = new JMenuItem("Redo"); 
     mnEdit.add(mntmRedo); 

     JMenuItem mntmCut = new JMenuItem("Cut"); 
     mnEdit.add(mntmCut); 

     JMenuItem mntmCopy = new JMenuItem("Copy"); 
     mnEdit.add(mntmCopy); 

     JMenuItem mntmDelete = new JMenuItem("Delete"); 
     mnEdit.add(mntmDelete); 

     JMenu mnSearch = new JMenu("Search"); 
     menuBar.add(mnSearch); 

     JMenuItem mntmSearch = new JMenuItem("Search"); 
     mnSearch.add(mntmSearch); 

     JMenuItem mntmFile = new JMenuItem("File"); 
     mnSearch.add(mntmFile); 

     JMenuItem mntmJava = new JMenuItem("Java"); 
     mnSearch.add(mntmJava); 

     JMenu mnHelp = new JMenu("Help"); 
     mnHelp.setFont(UIManager.getFont("OptionPane.messageFont")); 
     menuBar.add(mnHelp); 

     JMenuItem mntmWelcome = new JMenuItem("Welcome"); 
     mnHelp.add(mntmWelcome); 

     JMenuItem mntmHelpContents = new JMenuItem("Help Contents"); 
     mnHelp.add(mntmHelpContents); 

     //Panel (Drawing board)// panel 
     panel.setBackground(Color.WHITE); 



     f.getContentPane().add(panel, BorderLayout.CENTER); 

     Label label = new Label(); 
     label.setForeground(Color.WHITE); 
     panel.add(label); 

     table = new JTable(); 


     table.setFillsViewportHeight(true); 
     table.setVisible(false); 
     table.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); 
     table.setAutoscrolls(false); 
     table.setAlignmentY(2.0f); 
     panel.add(table); 
     table.setModel(new DefaultTableModel(
     new Object[][] { 
      {null}, 
      {null}, 
      {null}, 
      {null}, 
     }, 
     new String[] { 
      "Table" 
     } 
    )); 
     table.getColumnModel().getColumn(0).setResizable(false); 
     table.getColumnModel().getColumn(0).setPreferredWidth(145); 
     f.setVisible(true); //set visible 
     f.setSize(600,400); //set size 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     f.setLocationRelativeTo(null); 


} 

public void addtoPanel(Component c) 
{ 
    panel.add(c); 
} 

public static void main(String[] args) 

{ 
    new Interface(); 


} 

private static void addPopup(Component component, final JPopupMenu popup) { 
    component.addMouseListener(new MouseAdapter() { 
     public void mousePressed(MouseEvent e) { 
      if (e.isPopupTrigger()) { 
       showMenu(e); 
      } 
     } 
     public void mouseReleased(MouseEvent e) { 
      if (e.isPopupTrigger()) { 
       showMenu(e); 
      } 
     } 
     private void showMenu(MouseEvent e) { 
      popup.show(e.getComponent(), e.getX(), e.getY()); 
     } 
    }); 
} 

} 

看代碼的一部分是在恆星之間!該部分工作不正常。作爲其不加入任何圖像面板上點擊

回答

2

如果我這個問題的解釋是正確的,你可以使用ImageIcon接受URL的構造,即:

label.setIcon(new ImageIcon(new URL(
     "http://duke.kenai.com/iconSized/duke.gif"))); 

還要注意,添加控件後到容器,容器需要重新生效,即撥打validate();repaint();

編輯:

對於本地文件有一個構造函數一個文件名,即:

label.setIcon(new ImageIcon("C:/Users/User/Desktop/1.png")); 

你也可以在需要時使用網址:

File file = new File("C:/Users/User/Desktop/1.png"); 
label.setIcon(new ImageIcon(file.toURI().toURL())); 

您也可以使用反斜線,即:C:\\Users\\User\\Desktop\\1.png

另一種方法來創建URL到本地文件:

label.setIcon(new ImageIcon(new URL("file:/C:/Users/User/Desktop/1.png"))); 

編輯

試試這個簡單的例子,以顯示你的形象:

import java.awt.Image; 
import java.io.File; 
import java.io.IOException; 

import javax.imageio.ImageIO; 
import javax.swing.ImageIcon; 
import javax.swing.JOptionPane; 

public class DisplayImage { 
    public static void main(String[] args) { 
     Image image; 
     try { 
      image = ImageIO.read(new File("C:/Users/User/Desktop/1.png")); 
      JOptionPane.showMessageDialog(null, new ImageIcon(image)); 
     } catch (IOException e) { 
      JOptionPane.showMessageDialog(null, "Failed to load image"); 
     } 
    } 
} 
+0

C:\用戶\ Ashad \ JunoWorkspace \ FYP1 \ table.png這是它不工作的URL ...請糾正我 – Asdakamessoy

+0

@AshadChaudhar y'label.setIcon(new ImageIcon(「C:/Users/Ashad/JunoWorkspace/FYP1/table.png」));'如果圖像存在,應該可以。這可能是斜槓問題,請確保使用正斜槓。 – tenorsax

+0

java.net.MalformedURLException:未知協議:c \t at java.net.URL。 (Unknown Source) \t at java.net.URL。 (Unknown Source) \t at java.net.URL。 (來源不明) \t在build.Interface $ 1.actionPerformed(Interface.java:63) \t在javax.swing.AbstractButton.fireActionPerformed(來源不明) \t \t !!錯誤!! – Asdakamessoy

相關問題