Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是图形上下文(在Java中)?_Java_User Interface - Fatal编程技术网

什么是图形上下文(在Java中)?

什么是图形上下文(在Java中)?,java,user-interface,Java,User Interface,这个术语我已经见过好几次了,它是什么意思?它是一个可以用来在SWING/AWT程序上绘制图形原语的对象 例如: class JMyComponent extends JComponent { @Override public void paint(Graphics g) { // g contains graphics context g.fillOval(...); // draw an oval on the component

这个术语我已经见过好几次了,它是什么意思?

它是一个可以用来在SWING/AWT程序上绘制图形原语的对象

例如:

class JMyComponent extends JComponent
{
    @Override
    public void paint(Graphics g) {  
        // g contains graphics context
        g.fillOval(...);  // draw an oval on the component
        // more graphics primitives...
    }
}

在几乎所有其他UI框架中都有类似的上下文。Java或非Java。

要在Java中绘制任何图形,都需要图形上下文。图形上下文是属于类java.awt.graphics的对象


图形上下文是图形对象,它包含在Java中进行绘图所需的所有内容

在大多数AWT和Swing组件中,可以替代paint(Graphics g)方法来实现自己的绘图方法。它在图形上下文(图形对象)中传递,供您在其上执行绘图方法。

“上下文”是许多java开发人员用于承载状态信息的类的通用名称。因此,我们肯定会看到许多不同的类名包含上下文


桌面Java中的图形上下文通常表示类或类。它们包含有关图形特性的信息:颜色、线特性、剪裁区域等

图形上下文是逻辑输出设备。例如,这可能是一个计算机屏幕

Java中的图形类允许与图形上下文交互

有关更多信息:

我会向上投票,但在Swing中,自定义绘制是通过重写paintComponent(…)方法来完成的。@camickr:这取决于您想做什么。如果您的JPanel除了自定义图形外不包含任何内容(即不包含任何组件),则覆盖paint()是一种可行的方法,因为它具有较少的计算开销。@DreamspacePresident。阅读上的Swing教程。