小编Mar*_*rco的帖子

非常奇怪的Java2D setClip()效果 - bug?

我想创建一个具有自定义形状和透明度的对话框,认为信息气泡指向某个组件.

为此,我添加了JPanel一个JDialog并覆盖paintComponent(Graphics)面板的方法.面板本身包含常规JLabelsJButtons.工作正常,但只要我Graphics2D.setClip(Shape)在面板中使用绘制代码,组件就会被背景透支.如果我没有设置剪辑(对于一个完全新鲜的Graphics2D对象,不能少),一切正常.这对我来说非常令人费解,我不知道我能做些什么来解决它.

PS:我无法使用setShape(Shape),JDialog因为那里没有抗锯齿功能.PPS:实际的用例是绘制一个大的背景图像,必须在信息气泡形状上切除.

当您多次鼠标悬停在右上角的"x"时,以下SSCCE会演示此问题.

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import java.awt.Polygon;
import java.awt.Shape;


public class Java2DTransparencySSCE extends JDialog {

    JPanel panel;
    private JButton close;
    private JLabel headline;
    private JLabel mainText;

    public Java2DTransparencySSCE() { …
Run Code Online (Sandbox Code Playgroud)

java swing java-2d

6
推荐指数
1
解决办法
390
查看次数

从树中删除节点并返回生成的林

我来自Java背景,想学习一些Haskell.但是,此刻有点卡住了.

我想要做的是:我有一个树列表,其中每个节点在列表中的所有树中都有唯一的标识符.现在我想删除其中一个树中的一个节点并返回新树以及未更改的树.

删除节点应该:

  • 使所述节点的所有子节点成为新树的根
  • 删除已删除节点的父节点直到并包括根节点,并对所有已删除的节点执行上述操作

想象一下以下树木:

在此输入图像描述

当我删除节点'2'时,我希望结果是以下树:

在此输入图像描述

树中的每个节点都包含标识符和子树列表.这是我到目前为止所做的,但它显然不起作用,我对如何使用Haskell解决这个问题感到有点迷茫:

import Data.Tree
data CustomNode = CustomNode { identifier :: Int } deriving (Ord,Eq,Show,Read)
type CustomTree = Tree CustomNode

myTree0 = t0
    where
        leaf i = Node CustomNode{identifier = i} []
        t0 = Node CustomNode{identifier = 0} [t1]
        t1 = Node CustomNode{identifier = 1} [t2, t5]
        t2 = Node CustomNode{identifier = 2} [leaf 3, leaf 4] 
        t5 = Node CustomNode{identifier = 5} [leaf 6]

myTree1 = t0
    where
        leaf i = Node CustomNode{identifier …
Run Code Online (Sandbox Code Playgroud)

tree haskell

4
推荐指数
1
解决办法
877
查看次数

标签 统计

haskell ×1

java ×1

java-2d ×1

swing ×1

tree ×1