标签: paintcomponent

PaintComponent未被称为netbeans GUI

我是netbean的图形系统的新手,并且一直在努力学习java教科书.我正在尝试制作一个简单的程序来显示一些东西,并按照它的要求完全按照本书.我在研究中发现了其他一些有类似问题的人.这些人倾向于被告知使用维度和preferredSize方法,尽管在我试图在java中重现的书的部分中没有提到这些.以下是我的代码:

public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        JFrame frame = new JFrame(); //create frame
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //makes x button end program
        frame.setSize(300,200); //determine the size of the frame
        ImageIcon image = new ImageIcon("panda.jpg");
        ColorPanel p = new ColorPanel(Color.pink, image);
        Container pane = frame.getContentPane();
        pane.add(p);
        frame.setVisible(true); //make frame show up
    }

}

public class ColorPanel extends JPanel {

    ImageIcon image;

    public ColorPanel(Color c, ImageIcon i){
        setBackground(c);
        image = i; …
Run Code Online (Sandbox Code Playgroud)

java swing paintcomponent

0
推荐指数
1
解决办法
859
查看次数

paintComponent方法未在面板上显示任何内容

我一直试图调试这几个小时.该程序应该是一个图形坐标的图形,但我不能得到任何东西甚至不是随机线,但如果我把一个打印声明放在那里它的工作原理.这是paintComponent方法的一个问题.当我在g.drawLine之前打印语句然后打印,但即使我放置一个带坐标(1,3),(2,4)的随机行,它也不会绘制任何行.

import java.awt.*;
import java.util.*;
import javax.swing.*;
public abstract class XYGrapher
{
    abstract public Coordinate xyStart();
    abstract public double xRange();
    abstract public double yRange();
    abstract public Coordinate getPoint(int pointNum);
    public class Paint extends JPanel
    {
        public void paintGraph(Graphics g, int xPixel1, int yPixel1, int xPixel2, int yPixel2) 
        {
            super.paintComponent(g);
            g.setColor(Color.black);
            g.drawLine(xPixel1, yPixel1, xPixel2, yPixel2);
        }
        public void paintXAxis(Graphics g, int xPixel, int pixelsWide, int pixelsHigh) 
        {
            super.paintComponent(g);
            g.setColor(Color.green);
            g.drawLine(xPixel, 0, xPixel, pixelsHigh);
        }
        public void paintYAxis(Graphics g, int yPixel, int …
Run Code Online (Sandbox Code Playgroud)

java swing jpanel paintcomponent

0
推荐指数
1
解决办法
952
查看次数

图形因未知原因消失

我正在使用swing创建一个战舰类型的游戏.我在一个面板中绘制图像并显示正常,但是当我在不同的面板中绘制更多图像时,它会删除第一个面板中的大部分(如果不是全部)图像并保持第二个面板中的图像完好无损.如何在面板中绘制后保持图像不会消失.

我一直在网上寻找答案大约一个星期左右,并且没有提出任何问题......

public class GameBoard extends JPanel{
Graphics g0;
public void paintComponent(Graphics g1) {
    g0 = this.getGraphics();
    // fill with the color you want
    int wide = 275;
    int tall = 275;

    // go into Graphics2D for all the fine art, more options
    // optional, here I just get variable Stroke sizes
    Graphics2D g2 = (Graphics2D) g1;
    g2.setColor(Color.black);
    g2.setStroke(new BasicStroke(1));
    Graphics2D g3 = (Graphics2D) g0;
    g3.setColor(Color.black);
    g3.setStroke(new BasicStroke(1));
    // the verticals
    for (int i = 0; i < 12*25; i+=25) …
Run Code Online (Sandbox Code Playgroud)

java graphics swing paintcomponent

0
推荐指数
1
解决办法
1812
查看次数

点击一下画一个点

您好我想知道如何在方法MouseClicked之外获取鼠标的位置我需要在有人点击的地方画一个点..这是我现在使用的代码.有人可以帮我弄这个吗?

    Dot punt = new Dot();

public void paintComponent(Graphics g) {
    super.paintComponent(g);

    punt.setDot(g, getX(), getY(), 5);

    repaint();
}

@Override
public void mouseClicked(MouseEvent m) {
    // TODO Auto-generated method stub
    gebeurtenisverslag.setText( 
            m.getClickCount() + " keer geklikt op " + m.getX() + "," + m.getY());
}
Run Code Online (Sandbox Code Playgroud)

java graphics swing paintcomponent

0
推荐指数
1
解决办法
363
查看次数

为什么这个Java绘图程序不会绘制多个椭圆?

我有一个Java绘图程序,它使用自定义JPanel进行绘制.当点击JPanel时会画一个小椭圆(或圆圈,如果你愿意的话),每当你点击另一个地方时,椭圆会消失.坐标也会更新,但椭圆不会停留,它会移动到用户点击下一个位置...这是自定义JPanel的代码:

int xCord, yCord;

    public class PaintPanel extends JPanel implements MouseListener {
        // default serial whatever...
        private static final long serialVersionUID = -6514297510194472060L;

        // initial values
        int xCord = -10;
        int yCord = -10;

        public PaintPanel() {
            addMouseListener(this);
        }

        @Override
        public void paintComponent(Graphics g) {
            super.paintComponent(g);
            g.setColor(ProgramUI.currentColor);
            g.fillOval(xCord, yCord, 8, 8);
            repaint();
        }

        @Override
        public void mouseClicked(MouseEvent m) {
        }

        @Override
        public void mouseEntered(MouseEvent m) {
        }

        @Override
        public void mouseExited(MouseEvent m) {
        }

        @Override
        public void mousePressed(MouseEvent m) { …
Run Code Online (Sandbox Code Playgroud)

java swing repaint paintcomponent

0
推荐指数
1
解决办法
514
查看次数

java练习赋值中的NullPointerException

他是java的初学者,我正在做一个我需要画汽车的练习.我书中的代码不起作用,我不知道为什么.

我不是java的总菜鸟我知道类,对象,方法等但是如果它涉及到语法的确切行为我仍然很高兴.

这是代码:

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

public class Vb1101 extends JFrame {
    public static void main( String args[] ){
        JFrame frame = new Vb1101();
        frame.setSize(350,200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("exercise 1101 draw car parts");
        frame.setContentPane( new Carpanel() );
        frame.setVisible( true );
    }
}

class Carpanel extends JPanel {
    public Car car;

    public void Carpanel(){
        car = new Car( 20, 150, 80, 30 );
    }

    public void paintComponent( Graphics g ){
        super.paintComponent(g);
        setBackground(Color.WHITE);
        car.teken(g);
    }
}

 class Car {
    public ArrayList<Part> …
Run Code Online (Sandbox Code Playgroud)

java debugging exception paintcomponent

0
推荐指数
1
解决办法
132
查看次数

有时会自动调用repaint()吗?

我正在制作游戏.游戏中的每个对象都在注册表中注册.我有一个游戏循环调用的更新和渲染方法.render方法调用repaint()JPanel,我已经覆盖paintComponent(Graphics g)了图形.当它呈现并更新时,它会遍历每个对象并对其进行更新并从注册表中呈现它.有时候我会得到一个并发修改错误,我相信这是因为有些事情是在paintComponent()我的游戏循环中调用另一个.如果一个JPanel或甚至JFrame调用自己的重绘,有没有办法禁用它?

java graphics swing paintcomponent concurrentmodification

0
推荐指数
1
解决办法
188
查看次数

绘制的组件比框架大

我正在使用相同的数字来设置框架的大小,因为我要绘制矩形,但图形比我的JFrame大.为什么是这样?

import java.awt.Color;
import java.awt.Graphics;

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

public class Test {
    public static void main(String[] arguments) {
        Test test = new Test();
        JFrame frame = new JFrame();
        DrawPane contentPane = test.new DrawPane();
        frame.setContentPane(contentPane);
        frame.setSize(300, 400);
        frame.setVisible(true);
    }

    private class DrawPane extends JPanel {
        @Override
        protected void paintComponent(Graphics g) {
            g.setColor(Color.YELLOW);
            g.fillRect(0, 0, 300, 400);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java swing jpanel paintcomponent

0
推荐指数
1
解决办法
215
查看次数

程序没有正确绘制屏幕

我一直在构建一个简短的程序,基本上在JPanel上绘制一个太空船,并听取指示程序射击子弹的键.问题是它甚至没有在屏幕上绘制宇宙飞船或子弹.我还怀疑KeyBindings可能无法工作,因为这是以前的问题(我可能已经或可能没有修复),但手头的主要问题仍然是我的屏幕没有被绘制.这是我的代码:

public enum Direction {
    LEFT, RIGHT, SPACE
}

import javax.swing.JFrame;

public class Main {
    public static void main(String[] args) {
        JFrame frame;

        Ship s1;
        Shoot shoot;

        // Set the frame up
        frame = new JFrame();
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);
        frame.setVisible(true);

        // Get some more necessary objects
        s1 = new Ship();
        shoot = new Shoot(s1);
        frame.getContentPane().add(shoot);
        s1.setShoot(shoot);

        // Threads
        Thread ship = new Thread(s1);
        ship.start();
    }
}

import java.awt.Graphics;
import java.awt.event.KeyEvent;

import javax.swing.Action;
import javax.swing.ActionMap;
import javax.swing.InputMap;
import javax.swing.JPanel;
import …
Run Code Online (Sandbox Code Playgroud)

java null swing key-bindings paintcomponent

0
推荐指数
1
解决办法
102
查看次数

透明面板,没有任何文物

我在用JComponentJava 重写对象和绘画时知识非常有限.我要做的是创建一个函数,我可以调用它来设置透明度,避免在面板内单击按钮时出现伪像.基本上我会JPanel在另一个面板上使用它.喜欢,

class panel1 extends JPanel(){
public panel1(){
    this.add(new panel2())
    //call the setPanelTransparency(this);
}

class panel2 extends JPanel(){
    this.setPreferredSize(new Dimension(500,500));
    this.setBorder(BorderFactory.createLineBorder(2,Color.RED);
}
Run Code Online (Sandbox Code Playgroud)

我该如何纠正这种方法?当我试图将它作为panel1课程中的方法包含时,我会收到错误.

 public void setPanelTransparency(JPanel myPanel){

    protected void paintComponent ( Graphics g )
    {
        g.setColor ( getBackground () );
        g.fillRect ( 0, 0, getWidth (), getHeight () );
        super.paintComponent ( g );
    }

    });
    myPanel.setOpaque(false);
    myPanel.setBackground(new Color(49,43,31,60));
}
Run Code Online (Sandbox Code Playgroud)

我很感激任何帮助.我想知道使Panels透明的最简单方法,没有任何工件风险.我需要一种可以调用的方法.此外,我尝试过,UIManager.put()但似乎没有适当的应用没有任何工件.

我很欣赏将透明度应用于项目的最简单的解决方案,因此我可以专注于创建表格.

java swing alpha-transparency paintcomponent

0
推荐指数
1
解决办法
46
查看次数