标签: paint

C#Winforms如何在鼠标上的按钮上绘制矩形?

在我们的应用程序中,我们在白色表单上有白色按钮.当鼠标悬停按钮时,我们希望在按钮上显示浅蓝色透明矩形.

我想创建这个用户控件,但我不知道如何做到这一点.我试过谷歌,但我没有找到任何可以帮助我的东西,所以我希望你们能指出我正确的方向.

c# paint button winforms

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

repaint()方法不会重绘我的屏幕

我在这里尝试做的是repaint()从我的loadbg()方法中调用方法.但是,repaint()不起作用,我的图像(存储在var中bg)不会加载到屏幕上.有关为什么这不起作用的任何建议?

package core;

/*** @author Adil

 * 2DPlatformer
 * Written by Adil
 * Built upon the player-core framework (written by Adil)
 * GNU Licensed

 */
import java.awt.*;

import javax.swing.JFrame;

import javax.swing.ImageIcon;

@SuppressWarnings("serial") //Suppress serial warning ID
public class Core extends JFrame {

    public static void main(String[] args) {
        DisplayMode dm = new DisplayMode(800, 600, 16, 
                DisplayMode.REFRESH_RATE_UNKNOWN); 
        //new display with parameters 800x600 + 16 bit color depth
        Core i = new Core(); //new …
Run Code Online (Sandbox Code Playgroud)

java user-interface swing paint

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

在onPause()之后调用onDestroy()

我正在实施油漆应用程序.我的问题是,当我在物体上着色时.有些时候屏幕进入睡眠状态.当我清醒屏幕时,我的旧油漆丢失了.我发现它在Onpause之后自动调用OnDestroy,因此它会清除画布.如何自动停止调用Ondestroy.

android canvas paint colors ondestroy

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

OnPaint方法没有正确绘制矩形

我有以下绘制矩形的绘制事件(窗体):

void LogicSimulationViewerForm_Paint(object sender, PaintEventArgs e) {
    Rectangle rect = new Rectangle(100, 100, 400, 100);
    Graphics c = rtbLogicCode.CreateGraphics();
    c.DrawRectangle(new Pen(Color.Black, 3), rect);
}
Run Code Online (Sandbox Code Playgroud)

矩形显示片刻,然后立即消失.只有当用户调整表单大小时,矩形才会再次显示.

我该如何解决这个问题?

.net c# paint winforms

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

将手指画应用于我自己的视图

我有一个自定义视图,我想要应用手指画.我该如何实现这一目标?

我自己的观点是210x170像素,我想用手指画画.

我真的很困惑如何做到这一点.

android canvas paint android-custom-view

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

如何填充按钮中的其余部分?

我一直在尝试圆形按钮,但这里有一个问题.目前我得到一个这样的按钮:

在此输入图像描述

我想要做的是填充按钮方块中的其余部分.我该怎么做呢 ?这是绘制此按钮的代码.

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

class Tester extends JButton {

        public Tester(String label) {
            super(label);
            setContentAreaFilled(false);
            Dimension size = this.getPreferredSize();
            size.width = size.height = Math.max(size.width,size.height);
            this.setPreferredSize(size);

        }

        @Override
        public void paintComponent(Graphics g) {System.out.println("Inside the paintComponent method");
            if (getModel().isArmed()) {
                g.setColor(Color.lightGray);
            } else {
                g.setColor(getBackground());
            }
            g.fillOval(0,0,getSize().width-1,getSize().height-1);
            System.out.println(getSize().width);
            System.out.println(getSize().height);
            super.paintComponent(g);
        }


        public static void main(String args[]) {
            JFrame fr = new JFrame();
            JPanel p = new JPanel();
            JButton button = new Tester("Click Me !");
            button.setBackground(Color.GREEN);
            p.add(button);
            fr.add(p);
            fr.setVisible(true);
            fr.setSize(400,400); …
Run Code Online (Sandbox Code Playgroud)

java swing paint jbutton

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

JFrame不绘制矩形

有一个非常简单的问题,我之前没有遇到过.我在做项目之前使用了类似的布局.

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

class q1
{
    public static void main (String Args [])
    {
        q1Window showMe = new q1Window();
    }
}

class q1Window
{
    q1Window()
    {
        JFrame window = new JFrame("Tutorial 1");
        window.setSize(600,600);
        window.setVisible(true);
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public void paint (Graphics back)
    {
        back.setColor(Color.black);
        back.fillRect(30,30,100,200);           
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我似乎无法打印任何JFrame显示的东西.

java graphics swing paint

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

如何增加重绘JPanel的频率?

我有一个简单的程序,它以一定的速度和角度绘制从原点发射的粒子的轨迹.我创建了一个JPanel的子类来处理这个的绘制.我每次重新绘制子类时都需要当前时间和初始时间之间的差值(以毫秒为单位),将其转换为秒,然后找到粒子应该在该时间点的x和y坐标,最后获取那些x和y坐标并在屏幕上绘制它们.我的问题是我的子类似乎在间隔时间重绘,看起来很长,因为只显示了几个点.

我的绘图方法:

private void doDrawing(Graphics g) {

    Dimension size = getSize();
    Insets insets = getInsets();
    int w = size.width - insets.left - insets.right;
    int h = size.height - insets.top - insets.bottom;

    Graphics2D g2d = (Graphics2D) g;
    g.drawString("Acceleration: -9.8m/s i", 0, 20);
    StringBuilder b = new StringBuilder();
    b.append("Current Velocity: ");
    b.append(String.valueOf(sim.getVector(tickSpeed
            * ((System.currentTimeMillis() - initTime) / 1000)).getMagnitude()));
    b.append(" m/s at ");
    b.append(String.valueOf(sim.getVector(tickSpeed
            * ((System.currentTimeMillis() - initTime) / 1000)).getDirection().getDirectionDeg()));
    b.append(" degrees");
    g.drawString(b.toString(), 0, 30);

    drawPreviousPoints(g2d);

    drawCurrentPointAndAppend(g2d, w, h);

    repaint();

}

private void …
Run Code Online (Sandbox Code Playgroud)

java swing paint jpanel graphics2d

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

JTable为Graphics返回null?

我正在尝试使用我制作的Painter对象在我的JTable上绘制线条,但由于某种原因table.getGraphics()返回null.

画家类:

import java.awt.BasicStroke;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JTable;

public class Painter extends JTable {

    public Painter(){

    }

    public void paintSudokuLines(Graphics g){
        paintComponent(g);
    }

    public void paintComponent(Graphics g){
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        g2.setStroke(new BasicStroke(3));
        g2.drawLine(0, 300, 400, 250);
    }
}
Run Code Online (Sandbox Code Playgroud)

我用以下方法调用方法:

private Painter paint = new Painter();
paint.paintSudokuLines(table.getGraphics());
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会这样,所以我需要一些解释.

java swing jtable paint line

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

在java中制作绘图应用程序的简单方法?

所以基本上我有一些我在几天前工作的代码,有点像Paint,它允许你使用鼠标在屏幕上绘制.我偶然发现了这个属性,我意识到这是非常低效的,我想知道是否有更实际的方法来做到这一点.没有任何理由可以提供我的所有代码,但这里是重要的部分

private static void createAndShowGui() {
    SimpleDraw mainPanel = new SimpleDraw();
    MenuBar.createMenuBar();
    JLabel label = new JLabel();
    label.setText("Drawing prototype 0.0.1");
     // label.setHorizontalTextPosition(JLabel.NORTH);
    label.setFont(new Font("Serif", Font.BOLD, 20));
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().add(mainPanel);
    frame.pack();
    frame.setLocationByPlatform(true);
    frame.getContentPane().setLayout(new BoxLayout(frame.getContentPane(),BoxLayout.PAGE_AXIS));
    frame.setVisible(true);
    frame.setJMenuBar(MenuBar.getMenuBar());
    frame.setBackground(Color.WHITE);
    frame.add(label);
Run Code Online (Sandbox Code Playgroud)

上面的代码块设置了jframe(窗口)

 @Override
    public void mouseDragged(MouseEvent e)
    {
    // These console outputs are just so that I know what is happening
        System.out.println("Event: MOUSE_DRAG");
        System.out.println(e.getX());
        System.out.println(e.getY());
        System.out.println(e.getComponent());
        System.out.println(e.getWhen());
        System.out.println(e.getButton());
         MOUSE_X = e.getX() - 5;  //-5 so that the cursor represents the center of the square, not …
Run Code Online (Sandbox Code Playgroud)

java swing paint jcomponent jframe

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