我想实现一个需求,各位看官看看可行吗?swing的panel中嵌入html,然后点击html的图片,通过相应的事件处理,到达这个swing系统中其他panel页面谢谢如果可以 能否赐教。。谢谢。小散 100

解决方案 »

  1.   

    panel貌似 不能  嵌入html
    但是你可以在panel裡面加入個jlabel 然後在jlabel裡面加入你的圖片,
    然後再加事件   點擊  到你要的另一個panel上
      

  2.   

    这种方式,实现起来不会困难
    我是想 知道 如果能内嵌html,那么超链接能响应事件到 相应的panel吗?
      

  3.   

    你在网上找一下相关的组件,这个好像要调用IE的库,比如这个 JDIC
      

  4.   

    用javax.swing.JEditorPane,它可以显示网页内容
    并且,当点击某个链接的时候,将会触发public void hyperlinkUpdate(HyperlinkEvent e)事件,在这个事件里面你可以做其它事情:import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.IOException;
    import java.net.MalformedURLException;
    import java.net.URL;import javax.swing.JEditorPane;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTextField;
    import javax.swing.event.HyperlinkEvent;
    import javax.swing.event.HyperlinkListener;public class Browser extends JFrame implements ActionListener,
    HyperlinkListener
    {
    private JLabel labUrl = new JLabel("URL 地址:");
    private JTextField txtUrl = new JTextField(20);
    private JEditorPane ep = new JEditorPane();
    private JPanel panel = new JPanel(); public Browser()
    {


    txtUrl.addActionListener(this);
    ep.addHyperlinkListener(this);

    panel.setLayout(new BorderLayout());
    panel.add(labUrl,BorderLayout.WEST);
    panel.add(txtUrl,BorderLayout.CENTER);

    this.setLayout(new BorderLayout());
    this.add(panel,BorderLayout.NORTH);
    this.add(new JScrollPane(ep),BorderLayout.CENTER);
    } public void actionPerformed(ActionEvent e)
    {
    URL url;
    try
    {
    url = new URL(txtUrl.getText());
    ep.setPage(url);
    } catch (MalformedURLException e1)
    {
    e1.printStackTrace();
    } catch (IOException e2)
    {
    e2.printStackTrace();
    }
    } public void hyperlinkUpdate(HyperlinkEvent e)
    {
    URL url = e.getURL();
    txtUrl.setText(url.toString());
    try
    {
    ep.setPage(url);
    } catch (IOException e1)
    {
    e1.printStackTrace();
    }
    //...这里就可以写到达这个swing系统中其他panel页面的代码
    }

    public static void main(String[] args)
    {
    Browser frame = new Browser();
    frame.setTitle("简单的浏览器");
    frame.setSize(640, 480);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    }
      

  5.   

    这个楼上已经说得比较清楚了,实际上Swing的轻量级组件都支持Html语法
      

  6.   


    假设我html有很多 图片 然后还有很多超链接,按这种方法,我如果知道是那个图片 或是哪个超链接的事件呢?当然这些图片或超链接 到的 panel页面是死的。。
      

  7.   

    你只是 panel  之間的跳轉   不需要什麽 html的連接啊 直接  換個panel顯示就好了    在panel之間 來回的切換就行了啊~
      

  8.   

    而且如果是图片链接呢?这个public void hyperlinkUpdate(HyperlinkEvent e)根本不起作用的啊
      

  9.   

    可以用jdic   哥也在整这个    搞不出来啊