我正在尝试创建一个允许我在画布中绘制图形数据结构的Java Applet.我将通过单击要创建节点的位置,然后单击节点来连接它们来完成此操作.问题是我无法让paint()
方法正常运行.我在mousePressed(MouseEvent e)
方法内部向图形(和画布上的方块)添加新节点,使用,
Graphics g = this.getGraphics();
g.setColor(Color.blue);
g.fillRect(e.getX(), e.gety(), 40, 40);
Run Code Online (Sandbox Code Playgroud)
一切正常,直到我调整窗口大小,然后所有填充的矩形消失.我把paint方法简化为一个空方法,但同样的事情仍然发生.我无法在paint()中添加fillRect命令,因为在用户使用鼠标与其交互之前我不知道存在哪些矩形.
如何g.fillRect()
在鼠标监听器内部使用并使它们粘在一起?
我有一个扩展 JButton 的类,因为我使用的自定义外观会忽略 isOpaque() 调用。我的意思是,即使我在它和所有父面板上调用了 setOpaque (false),也会呈现按钮的背景。我已经确认这是公司设计人员的 LAF 的一个问题,所以我只能扩展课程。所以我的问题是,如何实现paint() 方法来不呈现背景而只呈现按钮图标?干杯
已解决:如果有人感兴趣,我想要的答案是使用 button.setContentAreaFilled(false);
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Tetris extends JFrame {
public Tetris() {
add(new GamePanel());
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(false);
setSize(800, 600);
setVisible(true);
setLocationRelativeTo(null);
setTitle("Tetris");
}
public class GamePanel extends JPanel {
public GamePanel(){
TetrisBoard tetraBoard= new TetrisBoard();
GridBagLayout layout= new GridBagLayout();
this.setLayout(layout);
GridBagConstraints c = new GridBagConstraints();
c.gridx = 2;
c.gridy = 1;
c.ipadx = 190;
c.ipady = 390;
c.insets.left= 360;
layout.setConstraints(tetraBoard, c);
this.add(tetraBoard);
setBackground(Color.WHITE);
}
@Override
public void paint(Graphics g){
super.paint(g); …
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建类似程序的绘画,我正在实现一个桶填充工具.我正在存储已绘制的所有点并使用Graphics2D drawLine
绘制实际线,因此我不想存储桶填充的所有点(因此我不想进行填充).
对于桶填充,到目前为止,我已经使用a BufferedImage
来填充不在我的列表中但仍在绘制的点.
我想做的一件事就是只存储最外面的点,而不是fillPolygon
使用这些点来使用Graphics2D .唯一的问题是我不确定如何找到这些点.
我被困在这里,所以有人有任何想法吗?
我尝试使用此插件https://github.com/tcoupin/leaflet-paintpolygon进行多点圆形图像注释。但由于其中使用的库中存在错误,该插件无法正常工作。在传单或其他 JS 库中是否有其他解决方案可以做到这一点?谢谢
我执行此代码是为了从 firestore 获取图像并将其用作地图标记的图标。
final StorageReference storageReference =
FirebaseStorage().ref().child("ProfilePictures/" + widget.userId);
String avatarDownloadPath = await storageReference.getDownloadURL();
final File _avatar = await DefaultCacheManager().getSingleFile(avatarDownloadPath);
Uint8List __avatar = await _avatar.readAsBytes();
BitmapDescriptor avatar = BitmapDescriptor.fromBytes(__avatar);
setState(() {
_markers.add(Marker(markerId: MarkerId("UserPosition"), position: userLocation, icon: avatar ));
});
Run Code Online (Sandbox Code Playgroud)
此代码有效,但我想将图像设置为圆形,但我不知道该怎么做...
如果你也知道如何在周围添加一个圆圈并像这样设置动画,我会非常满意:
(我没有找到更具有代表性的东西,但我只想要一个圆圈)
我想画一个六边形,但我无法做到我想要的。这是我的结果:
Path createHexagonPath() {
const int SIDES_OF_HEXAGON = 6;
const double radius = 50;
const Offset center = Offset(50, 50);
final path = Path();
var angle = (pi * 2) / SIDES_OF_HEXAGON;
Offset firstPoint = Offset(radius * cos(0.0), radius * sin(0.0));
path.moveTo(firstPoint.dx + center.dx, firstPoint.dy + center.dy);
for (int i = 1; i <= SIDES_OF_HEXAGON; i++) {
double x = radius * cos(angle * i) + center.dx;
double y = radius * sin(angle * i) + center.dy;
path.lineTo(x, y);
} …
Run Code Online (Sandbox Code Playgroud) 我是c ++的新手,我正在尝试创建一个游戏.我有一个2d数组的矩形RECT_GRID.我有一个无符号短的二维数组GRID.我在WM_CREATE期间填充矩形数组
WM_PAINT事件为数组中的所有元素绘制矩形.矩形的颜色基于GRID [x] [y]的值
当按下向下键时,我这样做了,它通过将GRID [1] [XMOVE] =设置为不同的颜色来改变其中一个矩形的颜色,然后使客户端矩形无效
基本上发生了什么,它有效地工作了一段时间,但最终它只是停止绘制东西.我在调试期间检查了我的XMOVE变量,我检查了网格值和东西,一切都很好.当我从paint事件中移除for循环并专注于1个特定的矩形时,它永远不会失败,但如果我尝试一次重绘所有这些,大约20次后,它就会停止绘制内容.什么可能导致这个?我是c ++的新手,我打赌我没有正确地绘画并导致溢出或其他东西.
如果有人能解释出现了什么问题,或者正确的做法,我真的很感激.我在Google上找不到这样的例子.谢谢
编辑:
我正在使用3个全球刷HBRUSH A; HBRUSH B; HBRUSH C;
当我修改它们时,我总是说A = MakeBrush(NUM);
我正确地使用刷子吗?
我正在尝试制作一个程序来检测按键并在窗口上绘制相应的字母.一切正常,但它只绘制一次......当我按下另一个键时没有任何反应.
case WM_KEYDOWN:
{
if (GetKeyState(0x41))
{
pCtrl->Paint (65);
}
Run Code Online (Sandbox Code Playgroud)
Paint函数调用Char函数,该函数使用::Textout
All 绘制一个字符.我无法理解为什么它不会多次绘制
这是我的油漆代码的一个非常简短的版本.请你能告诉我如何阻止它闪烁.感谢您使用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中制作这些病态的GUI?
我知道如何制作标准蹩脚的背景,但就是这样.
基本上我所说的是看起来他们拍摄了Photoshop并设计了整个GUI,然后将其绘制到屏幕上,并在Photoshop中添加了按钮和内容.我该怎么做以及我在寻找什么?
当然我还想要相同的功能......哈哈.