在浏览器上显示java代码的动态web项目?

在浏览器上显示java代码的动态web项目?,java,eclipse,swing,web-applications,Java,Eclipse,Swing,Web Applications,我正在eclipse中创建动态web项目。 下面是我的java类 package com; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.util.LinkedHashMap; import java.util.Map; import javax.swing.JFrame; import javax.swing.JPanel; public class Firs

我正在eclipse中创建动态web项目。 下面是我的java类

package com;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.util.LinkedHashMap;
import java.util.Map;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class FirstProject extends JPanel {
    private Map<Color, Integer> bars = new LinkedHashMap<Color, Integer>();

    /**
     * Add new bar to chart
     * 
     * @param color
     *            color to display bar
     * @param value
     *            size of bar
     */
    public void addBar(Color color, int value) {
        bars.put(color, value);
        repaint();
    }

    protected void paintComponent(Graphics g) {

        int max = Integer.MIN_VALUE;
        for (Integer value : bars.values()) {
            max = Math.max(max, value);
        }

        int width = (getWidth() / bars.size()) - 2;
        int x = 1;
        for (Color color : bars.keySet()) {
            int value = bars.get(color);
            int height = (int) ((getHeight() - 5) * ((double) value / max));
            g.setColor(color);
            g.fillRect(x, getHeight() - height, width, height);
            g.setColor(Color.black);
            g.drawRect(x, getHeight() - height, width, height);
            x += (width + 2);
        }
    }

    public Dimension getPreferredSize() {
        return new Dimension(bars.size() * 10 + 2, 50);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("Bar Chart");
        FirstProject chart = new FirstProject();
        chart.addBar(Color.red, 100);
        chart.addBar(Color.green, 8);
        chart.addBar(Color.blue, 54);
        chart.addBar(Color.black, 23);
        frame.getContentPane().add(chart);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }
}
package-com;
导入java.awt.Color;
导入java.awt.Dimension;
导入java.awt.Graphics;
导入java.util.LinkedHashMap;
导入java.util.Map;
导入javax.swing.JFrame;
导入javax.swing.JPanel;
公共类FirstProject扩展了JPanel{
私有映射栏=新建LinkedHashMap();
/**
*向图表中添加新条形图
* 
*@param颜色
*显示栏的颜色
*@param值
*钢筋尺寸
*/
公共void addBar(颜色、int值){
条。放置(颜色、值);
重新油漆();
}
受保护组件(图形g){
int max=整数的最小值;
for(整数值:bar.values()){
max=Math.max(max,value);
}
int width=(getWidth()/bar.size())-2;
int x=1;
用于(颜色:bar.keySet()){
int值=bar.get(颜色);
int-height=(int)((getHeight()-5)*((double)值/max));
g、 设置颜色(颜色);
g、 fillRect(x,getHeight()-高度、宽度、高度);
g、 设置颜色(颜色为黑色);
g、 drawRect(x,getHeight()-高度、宽度、高度);
x+=(宽度+2);
}
}
公共维度getPreferredSize(){
返回新尺寸(棒材尺寸()*10+2,50);
}
公共静态void main(字符串[]args){
JFrame=新JFrame(“条形图”);
FirstProject图表=新的FirstProject();
图表.添加栏(颜色为红色,100);
图表.添加栏(颜色.绿色,8);
图表。添加栏(颜色为蓝色,54);
图表.添加栏(颜色.黑色,23);
frame.getContentPane().add(图表);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
下面是我的web.xml


com.FirstProject
com.FirstProject
.
现在,当我运行应用程序时,本地主机将显示浏览器上的整个代码


如何获得所需的输出(浏览器上显示的条形图)?我是缺少了什么还是没有遵循正确的模式?

如果您想显示输出,那么必须使用JSP、Servlet,而不是JPANEL。 JPanel无法在浏览器中显示数据

您可以使用JApplet和将代码显示到浏览器中


明白我的意思了吗?

如果要显示输出,那么必须使用JSP、Servlet,而不是JPANEL。 JPanel无法在浏览器中显示数据

您可以使用JApplet和将代码显示到浏览器中


你明白我的意思了吗?

我认为这不是你问题的解决办法,但这可能有助于你解决问题

Swing和JSP+servlet之间的显著区别

JSP,servlet:它们是服务器端技术,用于生成HTML页面


Swing用于桌面应用程序(可与JApplets一起使用)

我认为这不是您问题的解决方案,但这可能有助于您解决问题

Swing和JSP+servlet之间的显著区别

JSP,servlet:它们是服务器端技术,用于生成HTML页面


Swing用于桌面应用程序(可与JApplets一起使用)

您正在使用JPanel。。JPanel是为桌面应用程序开发的。。 在基于Web的应用程序中,必须使用Jsp或servlet。。
您必须使用Html标记在web浏览器中显示您的设计。

您正在使用JPanel。。JPanel是为桌面应用程序开发的。。 在基于Web的应用程序中,必须使用Jsp或servlet。。
您必须使用Html标记在web浏览器中显示您的设计。

因为每个人都指定swing是桌面应用程序,而Jframe不能在web应用程序中使用

您可以使用jfreechart在web浏览器上仅显示静态图像

在使用swing u的桌面应用程序中,可以自定义鼠标列表、键盘列表、工具提示和所有


Jsp只能显示静态图像文件。

因为每个人都指定swing是桌面应用程序,而Jframe不能在web应用程序中使用

您可以使用jfreechart在web浏览器上仅显示静态图像

在使用swing u的桌面应用程序中,可以自定义鼠标列表、键盘列表、工具提示和所有


Jsp只能显示静态图像文件。

用于显示网页。

用于显示网页。

我们是否在动态web项目中使用
JPanel
?相反,你可以使用JSPs@Abu,以便显示条形图,我是否应该编写JSP,然后显示???
JPanel
是一个
swing
组件,如果我没有错,您就不能在基于web的项目中使用swing。但是,您可以尝试使用
JApplet
我们是否在动态web项目中使用
JPanel
?相反,你可以使用JSPs@Abu,以便显示条形图,我是否应该编写JSP,然后显示???
JPanel
是一个
swing
组件,如果我没有错,您就不能在基于web的项目中使用swing。但是,您可以尝试使用
JApplet
,因为它是“在服务器端或客户端生成图像”,并且分解为“使用JSP/servlet或applet生成图像”,我建议在这里使用JSP/servlet作为最佳选项。不要使用applet。如果它是“在服务器端或客户端生成图像”,并且分解为“使用JSP/servlet或applet生成图像”,我推荐JSP/servlet作为最佳选项。不要使用小程序。