相关疑难解决方法(0)

我应该避免在Java Swing中使用set(Preferred | Maximum | Minimum)Size方法吗?

有几次我因为建议使用以下方法而受到批评:

  1. 有必要对setPreferredSize
  2. 了setMinimumSize
  3. setMaximumSize

Swing组件上.当我想在显示的组件之间定义比例时,我没有看到任何替代它们的用法.我被告知这个:

对于布局,答案总是相同的:使用合适的LayoutManager

我在网上搜索了一下,但我没有找到任何关于这个主题的综合分析.所以我有以下问题:

  1. 我应该完全避免使用这些方法吗?
  2. 已经定义了这些方法的原因.那我什么时候应该使用它们?在哪种情况下?出于什么目的?
  3. 使用这些方法的负面后果究竟是什么?(我只能考虑在具有不同屏幕分辨率的系统之间添加可移植性).
  4. 我认为任何LayoutManager都不能完全满足所有需要的布局需求.我是否真的需要为布局上的每个小变化实现一个新的LayoutManager?
  5. 如果4的答案是"是",那么这是否会导致LayoutManager类的扩散变得难以维护?
  6. 在我需要定义组件子级之间的比例的情况下(例如,child1应该使用10%的空间,child2 40%,child3 50%),是否可以在不实现自定义LayoutManager的情况下实现这一点?

java swing layout-manager

471
推荐指数
8
解决办法
5万
查看次数

使用Java有效地对图像进行颜色循环

我正在写一个Mandelbrot分形观察器,我想以聪明的方式实现色彩循环.给定一个图像,我想修改它的IndexColorModel.

据我所知,没有办法修改IndexColorModel,并且无法为图像提供新的IndexColorModel.事实上,我认为没有办法提取其颜色模型或图像数据.

似乎唯一的解决方案是保持用于创建图像的原始图像数据和调色板,手动创建具有旋转颜色的新调色板,创建新的IndexColorModel,然后从数据创建一个全新的图像和新的颜色模型.

这一切似乎都是太多的工作.有更简单快捷的方式吗?

这是我能想到的最佳解决方案.此代码创建一个1000x1000像素的图像,并显示以每秒约30帧的速度循环的颜色动画.

(旧)

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

public class ColorCycler {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }

    private static void createAndShowGUI() {
        JFrame jFrame = new JFrame("Color Cycler");
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jFrame.add(new MyPanel());
        jFrame.pack();
        jFrame.setVisible(true);
    }

}

class MyPanel extends JPanel implements ActionListener {

    private byte[] reds = new byte[216];
    private byte[] greens = new byte[216];
    private byte[] blues = new byte[216];
    private final …
Run Code Online (Sandbox Code Playgroud)

java performance swing image

13
推荐指数
1
解决办法
3278
查看次数

如何将轴放在java中的.png文件中?

我有chart.png,其中有数据,我想用一些标签放一个简单的X - Y轴.我也想尝试不使用任何没有java附带的外部软件.我被允许使用jfreechart但是如果有一种方法可以让它看起来不错,而只是使用一些计划java代码,那会更好.有没有人对如何做这类事情有个好主意?

更新:这样的东西,但数据将用rgb值进行颜色编码,当然没有轴/标签.

pyplot延迟示例http://www.goldb.org/goldblog/cmg_images/pylot_latency_sample.png

这个图只是一个例子,它看起来与我的实际图形看起来一样......我的真实图形中可以包含每个rgb颜色值.我知道如何创建情节,我只是不知道如何将轴/标签放在BufferImage我创建的那个上

java swing png jfreechart axis-labels

7
推荐指数
1
解决办法
6298
查看次数

使用java的值可移动栏

我想创建一个带有值的栏.如果我移动圆圈,那么该字段中的值应该更改.我怎样才能做到这一点?这是屏幕截图.我怎样才能实现这一目标?

类似的东西也可以.请帮我解决一下这个.先感谢您 :)

在此输入图像描述

java user-interface swing jslider

3
推荐指数
2
解决办法
3361
查看次数

Java - 不透明的颜色

我想画一些线条.问题是关于颜色.例如.我有几行红色,而且我画了一行蓝色(或反转).有时,那些更多的线条对于最后一个线条是不透明的.

我尝试制作新的颜色并使用alpha复合材料设置颜色0.7 - 对于那些更多的线条,我保留一种颜色默认 - 不透明(alpha 1.0).起初我绘制了更多的线条,而不是最后一条线条.但那条线"覆盖"那一条.有没有解决这个问题的解决方案?

我在玻璃窗上画出那条线.


编辑:该代码是健壮的,因此很难发布它,它是论文的一部分.原理是2色,例如Color basicColor; 颜色相似颜色;

比我有绘画方法和2个哈希图作为属性 - 存储了一些点.我迭代这个地图,记住一点和他相似,所有其他点连接graphics2D.drawLine(x1,y1,x2,y2),然后改变颜色并用另一种颜色绘制最后一行.我也在修改中风,使其更显着.

我希望它足够......


edit2: 我有一些Point similarPoint而不是一些强大的paint方法,这里是图形修改迭代器迭代点列表的列表.

Point similar = null;
Iterator<Point> secondIterator;
graphics.setColor(colorOfSimilar);
while (iterator.hasNext()) {
    Point point = iterator.next();
    if (point.equals(similarPoint)) {
        similar = similarPoint;
    } else {
        secondIterator = secondMap.get(point).iterator();
        while (secondIterator.hasNext()) {
            Point secondPoint = secondIterator.next();
            graphics2D.drawLine(point.getX(), point.getY(),
                secondPoint.getX(), secondPoint.getY());
        }
    }
}
if (similar != null) {
    secondIterator = secondMap.get(similar);
    graphics2D.setColor(hooverColor);
    graphics2D.setStroke(new BasicStroke(2.5f));
    while (secondIterator.hasNext()) {
        Point secondPoint = secondIterator.next();
        graphics2D.drawLine(similar.getX(), similar.getY(),
            secondPoint.getX(), …
Run Code Online (Sandbox Code Playgroud)

java drawing colors

3
推荐指数
1
解决办法
4909
查看次数