标签: repaint

(Java)出现/消失JPanel中的JLabel仅在调整大小时消失

我在Java工作,我在JFrame中有一个JPanel.在那个JPanel中,除其他外,我有一个JLabel,我想让它出现并随意消失.我已经尝试将可见性设置为true/false,在JFrame和JPanel中添加和删除它,并且,在网上查看后,我尝试了验证()和无效地重新生成()无限广告.在这里可以做些什么来解决这个问题?

java resize jpanel jframe repaint

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

Java重绘图像

我的剧本有问题; 我想在按下按钮时重新绘制一个新图像(显示另一个图像),但该按钮不执行任何操作...

ActionListener one = new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                panel2.revalidate();
                panel2.repaint();
            }
        };

        btn1.addActionListener(one);



        JLabel test1 = new JLabel(myDeckOfCards.giveCardPlayer1().getImage());

        panel2.add(lab1);
        panel2.add(test1);
        panel2.add(pn5);
        panel2.add(pn1);
        panel2.add(btn1);
Run Code Online (Sandbox Code Playgroud)

java swing image panel repaint

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

在Java中更新JTextArea

在我的程序中,我加载a JTextArea以在单击按钮时显示一些文本.我添加了ActionListener并编写了一个loadQuestion()方法,但由于某种原因组件没有更新.该组件包含在另一个我通过get()set()方法访问的文件中.我在loadQuestion()方法中运行了repaint()revalidate()方法,并在方法中再次运行setTextArea(),但它似乎仍然无法工作!任何指针将不胜感激 - 提前感谢

public void loadQuestion () {
    JTextArea tempArea = quizDisplay.getTextArea();
    String text = "Hello World!!";
    tempArea.append("Hi");
    quizDisplay.setTextArea(tempArea);
    quizDisplay.revalidate();
    quizDisplay.repaint();

}
Run Code Online (Sandbox Code Playgroud)

java swing repaint jtextarea

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

按钮单击显示表格

我想要做的就是在JTable用户点击一个按钮时显示一些数据并且它可以正常工作,但是会发生一些奇怪的事情.当我第一次点击按钮时没有任何反应,但是当我最大化帧时,表格出现了!

ActionListener

b2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                boolean state = external.isSelected();
                DefaultTableModel model = new DefaultTableModel(ManhattanTable(values), Headers(values));
                   JTable table = new JTable(model);
                   table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
                   container.add(new JScrollPane(table));
                   table.setVisible(false);
                if(state) {
                    PrintStream out = null;
                    try {
                        out = new PrintStream(new FileOutputStream("output.txt"));
                    } catch (FileNotFoundException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }
                    System.setOut(out);
                    long start= System.currentTimeMillis();
                    Manhattan(values);
                    long end=System.currentTimeMillis();
                    out.println("time: "+(end-start)+" milliseconds");
                    out.println("Number of input data: "+values.size());    
                } else { …
Run Code Online (Sandbox Code Playgroud)

java user-interface swing jtable repaint

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

如何动态更新java画布?

问题:我正在尝试使用基于用户操作的新绘制对象更新画布.画布剂量得到更新.

我做了什么:用户与DnD动作交互,可转移对象到达画布,调用由我创建的更新图形方法.并且该方法只需使用aldready创建的图形2D对象,并使用它.我已经checkd免打扰作用将图像,对象正确recived在Canvas类,我能打印出来使用System.out.println.

示例代码,具有与我的类似的功能,

油漆类:

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

import javax.swing.JPanel;


public class PaintPanel extends JPanel{

    private Graphics2D drawImage;

    public PaintPanel()
    {

    }

    @Override
    public void paint(Graphics g) {
         drawImage = (Graphics2D) g;
         drawImage.setColor(Color.WHITE);
         drawImage.fillRect(0, 0, getWidth(), getHeight());
    }

    public void updateGraphics(int length,int width)
    {
        drawImage.setColor(Color.black);
        drawImage.drawRect(100, 150, length, width);
        repaint();
    }

}
Run Code Online (Sandbox Code Playgroud)

大型机类:

       import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;


public class MainPaint extends JFrame{


    public MainPaint()
    {
        setTitle("test paint");
        setSize(400,400);
        setLayout(new BorderLayout());

        final PaintPanel …
Run Code Online (Sandbox Code Playgroud)

java swing java-2d jpanel repaint

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

重绘JPanel的一部分

我需要在xy轴坐标系中绘制谷歌和雅虎访问时间.现在我绘制了xy轴坐标系.

public void paintComponent(Graphics gl) {
    Graphics2D g = (Graphics2D) gl;
    g.setColor(new Color(222, 222, 222));
    g.fillRect(0, 0, this.getWidth(), this.getHeight());
    g.setColor(new Color(0, 0, 0));
    int x=15;
    int y=15;
    g.drawString("20", 0, 10);
    for(int i=1;i<=20;i++) {
        g.drawLine(x, y+(35*(i-1)), x, y+(35*i));
        g.drawString(""+(20-i), 0, y+(35*i));
    }
    for(int i=1;i<=10;i++) {
        g.drawLine(x+(70*(i-1)),715, x+(70*i), 715);
        g.drawString(""+i,  x+(70*i),730);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我需要动态重新绘制这个XY坐标系上的访问时间值.但我知道何时调用repaint().它将再次重新绘制()XY坐标.如何在不重新绘制XY坐标的情况下重新绘制访问时间值?

java swing jpanel repaint paintcomponent

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

为什么这个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
查看次数

如何使摆动窗口在内容之间切换?

对不起,如果我的标题有点模糊,但我想要做的是让按钮通向另一个屏幕.我正在做一个基本的游戏,所以会有几个.我目前正在尝试做的是选项屏幕.我已经找到了使用revalidate(),repaint()和多个面板执行此操作的基本方法,但每次打开另一个窗口并且看起来效率不高.

这是我的选项屏幕代码,用于处理从主菜单到自身的屏幕更改.

package menu;

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

import main.Window;

public class Options 
{
JPanel pnlMain = Window.pnlMain;
JFrame frame = new main.Window();
    JPanel pnlOptions = new JPanel();

public static Button graphics = new Button("Graphics");

public Options()
{
    Listener listener = new Listener();

    frame.add(pnlOptions);
    frame.remove(pnlMain);
    pnlMain.revalidate();
    pnlMain.repaint();

    pnlMain.setVisible(false);
    pnlOptions.setVisible(true);

    pnlOptions.add(graphics);

    pnlOptions.revalidate();
    pnlOptions.repaint();

    graphics.addActionListener(listener);
}
Run Code Online (Sandbox Code Playgroud)

}

package menu;

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

import main.Window;

public class Options 
{
JPanel pnlMain = Window.pnlMain;
JFrame frame = new main.Window();
    JPanel pnlOptions = new …
Run Code Online (Sandbox Code Playgroud)

java swing window repaint

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

在调用repaint()之前,Java swing不会显示g.drawImage()

@Override
public void paintComponent(Graphics g) {
    Graphics2D g2 = (Graphics2D) g;
    super.paintComponent(g2);

    g2.fillRect(20, 20, 200, 200);
    g2.drawImage(map, 0, 0, 1004, 687, null);
}
Run Code Online (Sandbox Code Playgroud)

这是我的JPanel中paintComponent的代码.

当应用程序启动时,我可以看到矩形(仅在那里,因为我想检查是否正在调用paintComponent).但是在我通过调整窗口大小或按下强制重绘()的按钮强制重绘之前,地图不会绘制.

我尝试在几个地方调用validate(),因为有些答案表明,但它没有用.

java swing repaint drawimage paintcomponent

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

如何在游戏循环中使用 repaint() 方法

我正在尝试学习如何使用 java 创建一个游戏循环并每秒绘制一个新屏幕一定次数。游戏循环工作正常,但是当我尝试使用 repaint() 调用paint方法时,未调用paint方法。这是我的代码:

import javax.swing.JButton;
import javax.swing.JComponent;
import java.awt.Graphics;
import javax.swing.JFrame;
import java.awt.image.*;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class mainFrame extends Thread{
static boolean gameIsRunning = false;
MyCanvas2 myCanvas2 = new MyCanvas2();
static final int TARGET_FPS = 1;
static int x = 10;
static int y = 10;
static long startTime = 0;
static long elapsedTime = 0;
static long waitTime = 0;
public void createFrame(){
  JFrame window = new JFrame("Out from …
Run Code Online (Sandbox Code Playgroud)

java swing repaint game-loop graphics2d

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

在 Flutter.Stuck 中绘制应用程序并重新绘制

这是我的应用程序的 main.dart 文件:

import 'package:flutter/material.dart';

main() {
  runApp(
    new MaterialApp(
      title: 'Flutter Database Test',
      theme: ThemeData(
        textTheme: TextTheme(
          display1: TextStyle(fontSize: 24.0, color: Colors.white),
          display2: TextStyle(fontSize: 24.0, color: Colors.grey),
          display3: TextStyle(fontSize: 18.0, color: Colors.black),
        ),
      ),
      home: new MyHomePage(),
    ),
  );
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  List<Color> color = [
    Colors.white,
    Colors.black,
    Colors.pink,
    Colors.blue,
    Colors.red,
    Colors.yellow,
    Colors.orange,
    Colors.green,
    Colors.cyan,
    Colors.purple,
    Colors.brown,
    Colors.indigo,
    Colors.teal,
    Colors.grey,
  ];

  Color _pencolor = …
Run Code Online (Sandbox Code Playgroud)

android repaint flutter flutter-layout

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

Java repaint()方法并不总是有效

Java中的repaint()方法存在问题.我创建了一个不断重新绘制屏幕的新线程.当我释放空格键时,我希望我的播放器通过设置其位置然后等待50毫秒并循环20次来顺利下降.相反,它在循环中等待整个时间,然后重新绘制.我想知道为什么它不会不断重现球员坐标的变化.谢谢.

(编辑)感谢大家的帮助.这是我第一次使用堆栈溢出,而我只有13,仍在学习java,所以我可能会再次回到教程.

我的'一级'(主要):

public class a {
    public static void main(String[] args) {
        JFrame frame = new JFrame("StickFigure Game");
        frame.setSize(740, 580);
        frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
        b board = new b();
        frame.add(board);
        frame.addKeyListener(board);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的'b'级(JPanel /绘图):

public class b extends JPanel implements KeyListener {
    c player = new c();

    public class MyRunnable implements Runnable {

        public void run() {
            while (true)
                repaint();
        }
    }

    MyRunnable run = new MyRunnable();

    public void paint(Graphics g) {
        super.paint(g);
        Graphics2D g2d = (Graphics2D) …
Run Code Online (Sandbox Code Playgroud)

java swing repaint

-1
推荐指数
1
解决办法
4505
查看次数

重新绘制java时闪烁

这是我的油漆代码的一个非常简短的版本.请你能告诉我如何阻止它闪烁.感谢您使用JPanel的想法.

 public void paint(Graphics g ) {
    g.fillRect(BulletX, BulletY,0,0);
    g.setColor(Color.yellow);
    try{
    FileInputStream saveFile = new FileInputStream("Wins1.sav");
    ObjectInputStream save = new ObjectInputStream(saveFile);

    wins1 = (int) save.readObject();


    save.close();
    }
    catch(Exception exc){
    exc.printStackTrace();
    }
    Image image;
    URL resource = getClass().getClassLoader().getResource("moon1.jpg");
       URL resource1 = getClass().getClassLoader().getResource("Tank.jpg");
       URL resource2 = getClass().getClassLoader().getResource("Tank2.jpg");

       ImageIcon i2 = new ImageIcon(resource);
        ImageIcon i1 = new ImageIcon(resource1);
        ImageIcon i3 = new ImageIcon(resource2);
    image = i2.getImage();
        g.drawImage(image, 0,0,null);
        if (SHOW.equals("ON")){
        g.setFont(new Font("TimesRoman", Font.BOLD, 30));
        g.drawString("Player 1's health ="+Integer.toString(Player1H), 50, 25);}
    if (wins == …
Run Code Online (Sandbox Code Playgroud)

java swing paint repaint

-1
推荐指数
2
解决办法
213
查看次数