小编pro*_*mar的帖子

Java JComboBox故障图形

基本上,问题是当我点击或将鼠标悬停在JComboBox上时,我的程序的外观会出现问题.

这是我加载它后程序的样子(它应该如何看起来): 非故障应用程序

以下是一段时间点击其中一个JComboBox'es后发生的事情: 故障应用程序

我正在研究类似的问题,在这个页面,有人建议不要使用绝对定位; 但是我没有在我的计划中这样做,所以我没有想法.

下面是我在那里构建我的程序布局和组合框,它出现在我的类的构造函数,这是我从推出我的代码的部分main使用:EventQueue.invokeLater(() -> new DownloadCalculator());.

<编辑:代码替换为可运行的示例.请参阅下面的更新#1.>

更新1: 这是一个可运行的演示来说明问题.一段时间摆弄它们后,组合框会出现完全相同的问题.仅包含重现毛刺所需的代码,执行主要计算的功能部分已被删除,因为它与问题无关:

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

public class RunnableExample
{
    private final JFrame mainframe;
    private JTextField downloadSize, downloadSpeed, answerBox;
    private JComboBox<String> byteTypeSize, byteTypeSpeed, answerTimeUnit;

    public RunnableExample()
    {
        mainframe = new JFrame("Download Calculator");
        mainframe.setLayout(new BoxLayout(mainframe.getContentPane(), BoxLayout.Y_AXIS));
        mainframe.setSize(new Dimension(600, 300));
        mainframe.setResizable(false);
        mainframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mainframe.setLocationRelativeTo(null);

        initLook();
        mainframe.setVisible(true);
    }

    public static void main(String[] args)
    {
        EventQueue.invokeLater(() -> new RunnableExample());
    }

    private void calculateDownloadTime(String size, int sizeUnitType, String speed,
                                       int …
Run Code Online (Sandbox Code Playgroud)

java swing

8
推荐指数
0
解决办法
441
查看次数

是否可以将泛型类型扩展为Java中的多个类?

我试图用Java编写了使用通用参数,我想限制是完全有三种可能的阶级一方(无论是方法Field,MethodConstructor).

我试过以下标题:

private static <T extends Field,Method,Constructor> T[] sort(T[] anArray)
Run Code Online (Sandbox Code Playgroud)

但是这样它会忽略类型Method或类型的泛型参数Constructor.使用以下内容也会产生错误:

private static <T extends Field | Method | Constructor> T[] sort(T[] anArray)
Run Code Online (Sandbox Code Playgroud)

有可能做这样的事Java吗?

java generics

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

如何使用Python将4个字节解释为32位浮点数

我是Python语言的新手,我很难做一些我可以很容易地用C++或Java做的事情,但由于某些原因,在Python中看起来很复杂.我在数组中有以下四个字节(以大端顺序):

[0x64, 0xD8, 0x6E, 0x3F]
Run Code Online (Sandbox Code Playgroud)

我事先已经知道这些字节代表什么.它们指定以下32位浮点数:0.932989

我需要使用Python执行哪些步骤(最好是v3.2.1并且不使用额外的导入)将这4个字节解释为float并将该数字存储在一个我可以作为32位浮点值操作的变量中?即我可以使用它作为以下变量myVar = 0.932989

我试过了:

x = [0x64, 0xd8, 0x6e, 0x3f]
y = int.from_bytes(x, byteorder='little', signed=False) #interpret bytes as an unsigned little-endian integer (so far so good)
z = float(y) #attempt to cast as float reinterprets integer value rather than its byte values
Run Code Online (Sandbox Code Playgroud)

y对这些字节有正确的预期整数解释,1064228964也就是说,当将其转换为32位时会出现问题float.它不是将原始字节y作为float转换,而是转换这些字节的整数表示,因此z包含1064228964.0而不是所需的值0.932989.是否有可能int.from_bytes用于执行此简单任务的东西?也许是这样的float.from_bytes

python byte casting

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

C++:如何从方法返回后避免向量被破坏?

我试图/为一个Polynomial类重载除法运算符,但算法本身是无关紧要的.问题是当我试图以某种未知的原因返回时,C++似乎正在破坏我的多项式.

这是班级的相关部分:

class Polynomial
{
    public:
        .........
        Polynomial &operator/(const double &) const;
    private:
        int DEGREE;
        std::vector<double> poly_terms; // stores the polynomial coefficients
        .........
}
Run Code Online (Sandbox Code Playgroud)

这是我无法正常工作的方法:

Polynomial &Polynomial::operator/(const double &rhs) const
{
    Polynomial result(10); //create new polynomial object with a maximum degree of 10
    double buffer;

    for(int i = 0; i <= DEGREE; i++)
    {
        buffer = poly_terms[i]; //poly_terms is of type vector<double>
        result.setCoeff(i, buffer / rhs); //this method assigns (buffer / rhs) to the i-th index …
Run Code Online (Sandbox Code Playgroud)

c++ vector

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

标签 统计

java ×2

byte ×1

c++ ×1

casting ×1

generics ×1

python ×1

swing ×1

vector ×1