jjzjj

JComponent

全部标签

Java泛型 - 从方法返回声明类型的子类型

我的类正在实现一个返回List的父类(superclass)方法.返回的列表是只读的:publicabstractclassSuperClass{publicabstractListgetComponents();}在我的类(class)中,我想返回一个声明为列表的字段——即一个子列表:publicclassSubClassextendsSuperClass{privateListbuttons;publicListgetComponents(){returnbuttons;}}这会产生一个编译器错误,如List不是List的子类型.我能理解为什么它不能编译,因为不允许将JTextFi

Java:如何从任何 JComponent 中删除默认的 KeyStrokes?

我想控制哪个击键属于哪个Jcomponent。我什至想了解如何删除与Jcomponent关联的默认击键并将它们替换为其他喜欢的击键。我关注了这个神谕tutorial,它给出了一个JButton的例子,我试过了并且工作正常,但是当我用JComboBox尝试它时它不起作用!我真正尝试的是删除SPACE键,这是为了防止JComponent响应SPACE按下我使用这段代码删除了SPACE键:firstButton.getInputMap().put(KeyStroke.getKeyStroke("SPACE"),"none");JComboBox也是如此sizesComboBox.getInp

java - 如何从添加到 JLabel 的 JComponent 返回 XxxSize

如何从添加到JLabel的JComponent中正确返回XxxSize第一。图>>让LayoutManager像JPanel一样工作,JLabel返回Size(0,0)第二。图>>向JLabel添加了一些PreferredSize第三。图>>从添加到JLabel的JComponent计算出的PreferredSize第四。图>>让LayoutManager工作,将JLabel更改为JPanel,现在LayoutManager在不使用任何XxxSize的情况下正确计算了Dimension注意因为使用了NimbusL&F,所有可访问的L&F都有相同的输出importjava.awt.*;i

java - 在 JPanel 中手动定位 JComponent

我想以编程方式将我的JLabel移动到我的JPanel中的特定位置。我试过setLocation(intx,inty),但它不起作用。我试图不使用任何布局管理器。 最佳答案 这是一个很棒的教程,介绍如何在不使用布局管理器的情况下布局组件。http://java.sun.com/docs/books/tutorial/uiswing/layout/none.htmlCreatingacontainerwithoutalayoutmanagerinvolvesthefollowingsteps.Setthecontainer'slayo

java - 如何在自定义 JComponent 中使后台工作?

在下面的示例中,我在绿色背景上绘制了一个自定义的JComponent,但它没有出现。为什么会这样?publicclassTest_Background{publicstaticclassJEllipseextendsJComponent{privatefinalEllipse2Dellipse;publicJEllipse(intwidth,intheight){ellipse=newEllipse2D.Double(0,0,width,height);setOpaque(true);setBackground(Color.GREEN);}@OverridepublicDimensio

java - 如何删除 JFileChooser 上的 Ctrl+C 操作?

我在我自己的框架中的程序中嵌入了一个JFileChooser,框架中还有其他自定义组件。这是我的应用程序的设计,因为它可能有助于可视化我的问题:如果您看不出来,JFrame标题正下方的列表是JFileChoosers。这应该工作的方式是您将快捷方式分配给目的地,然后当您按下这些快捷键时,所选文件将移动到目的地。我这样做的策略是将快捷方式分配给整个框架的InputMap的javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW范围。但令人恼火的是某些东西(我假设是JFileChooser)一直在响应/吸收我不希望的按键。例如,如果我按Ctrl+C,我的快

添加自定义JCOMPONENT时未调用PaintComponent

为什么是paintComponent(Graphics)添加自定义JCOMPONENT时未调用?publicclassTest{publicstaticvoidmain(String[]args){JFrameframe=newJFrame("PaintComponentExample");frame.setPreferredSize(newDimension(750,750));frame.setLocationByPlatform(true);JPanelpanel=newJPanel();panel.add(newCustomComponent());frame.add(panel,Bo

java - 我能否在显示之前获得正确的 JComponent 大小?

JComponent的大小是什么时候计算的?在屏幕上显示之后还是之前?如果我在.setVisible(true)之前发送.getSize()消息,它会给我正确的答案吗?谢谢 最佳答案 我有时会在调试时检查我的组件的大小,例如,找出为什么我看不到它们。在大多数情况下,当GUI被呈现时,这些尺寸就会实现。当pack()或setVisible(true)在顶级窗口上调用时,可能会发生这种情况。我通常的方法调用顺序是先调用pack(),因为这会告诉布局管理器布置他们负责的组件,并设置组件和GUI的大小,然后调用setLocationRela

java - 画一个汽车轮子

我有一个非常简单的问题。我正在学习Java,并被分配画一辆汽车。我在一个扩展JPanel的类中完成了这一切,并在paintComponent()中完成了绘图。我意识到这是糟糕的面向对象编程,并决定尝试对某些部分进行子类化以纠正这种情况。我尝试创建一个画轮子的类,但没有成功。本质上,我希望能够做到这一点:MainClassextendsJPanelpaintComponent{WheelleftWheel=newWheel(0,50,100);this.add(leftWheel);}这应该在JPanel中的点(0,50)处绘制一个轮子,其直径为100。但是,我不确定我应该如何控制JPa

java - 我如何在 Swing 中捕获此异常?

我有一个Swing应用程序,即使我在try/block中拥有所有内容,也没有捕获异常。publicstaticvoidmain(String[]args){try{Appapp=newApp();app.setVisible(true);}catch(Throwablee){System.err.println("neverprinted");}}我得到的只是这个堆栈跟踪:Exceptioninthread"AWT-EventQueue-0"java.lang.ArrayIndexOutOfBoundsException:9>=9atjava.util.Vector.elementAt