小编Hov*_*els的帖子

re匿名内部类的多个实例

这与我在这个帖子中提供的问题的答案有关:内部类是轻量级的吗?

我记得从我的阅读中可以看出,如果你只能从一个匿名的内部类创建一个对象,那么,如果你想创建一个ActionListener类并想要从这个类中创建多个对象(不使用反射),不是使用匿名的内部类,而是使用私有的内部类或类的立场,但人们告诉我,我错了.有人可以帮我澄清一下吗?请查看链接,因为它包含更多详细信息,但如果有任何不清楚的地方,请询问!

java anonymous-inner-class

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

java.awt.AWTError:无法共享BoxLayout

我在设置布局之前初始化了MotePanel,Command Panel和LEDPanel,那么我是如何得到这个例外的.

请帮忙.

Exception in thread "main" java.awt.AWTError: BoxLayout can't be shared
    at javax.swing.BoxLayout.checkContainer(BoxLayout.java:462)
    at javax.swing.BoxLayout.invalidateLayout(BoxLayout.java:246)
    at javax.swing.BoxLayout.addLayoutComponent(BoxLayout.java:279)
    at java.awt.Container.addImpl(Container.java:1107)
    at java.awt.Container.add(Container.java:974)
    at javax.swing.JFrame.addImpl(JFrame.java:556)
    at java.awt.Container.add(Container.java:377)
    at Window.<init>(Window.java:54)
Run Code Online (Sandbox Code Playgroud)
public class Window extends JFrame{
    private JPanel MotePanel;
    private JPanel LEDPanel;
    private JPanel CommandPanel;
    private JCheckBox motes[];
    private JRadioButton Leds[];

    public Window(){
        this.setLayout(new BoxLayout(this,BoxLayout.X_AXIS));
        this.setTitle("Sensor Networks Lab");
        this.setSize(300, 200);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);

        MotePanel = new JPanel();
        LEDPanel = new JPanel();
        CommandPanel = new JPanel();
        motes = new JCheckBox[10];
        Leds = new JRadioButton[3];


        MotePanel.setLayout(new …
Run Code Online (Sandbox Code Playgroud)

java swing layout-manager

12
推荐指数
2
解决办法
2万
查看次数

模型,视图和控制器 - 应该创造什么?

根据良好的编程习惯,在程序运行时开始时,应首先创建哪个Controller,Model和View组件,哪些应该创建另外两个?

我的意思是,如果主函数首先创建控制器,那么控制器应该创建模型和视图并以某种方式使它们自己为人所知?

或者我应该开始创建视图,在显示之前,它会初始化控制器,这将创建模型?

或者模型应该先出现?或者它们都应该在main函数中并行创建?实施MVC的正确方法是什么?

编辑:我对一般答案感兴趣,但目前我正在使用Java Swing和Windows Phone 7.

java model-view-controller

12
推荐指数
2
解决办法
3401
查看次数

如何以编程方式关闭消息对话框?

我有一个关于joptionpane的问题.

使用JOptionPane.showMessageDialog(...),我们可以创建一个消息对话框.但是如何以编程方式关闭它呢?

java user-interface swing joptionpane

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

在编译过程方面,Java Runtime Environment如何与.NET框架进行比较?

我正在学习通过.NETJRE框架将源代码转换为机器代码.首先,我做了一些比较两个过程的研究并创建了这个图.我需要一些帮助批评它的正确性,更重要的是添加我错过的任何严肃的事情,以更好地理解编译途径.

在此输入图像描述

c# java compiler-construction

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

从Eclipse运行时不出现Java JFrame窗口

一个非常简单的问题.我尝试运行一个非常简单的演示来创建和显示Eclipse的Window Frame,但没有任何反应.没有错误,没有窗口,代码运行完成.

我添加了断点并确保代码按预期运行.代码直接来自Java教程(FrameDemo),我只是将包重命名为适合放置它的位置(此包中的其他代码运行正常):

package ui;

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

/* FrameDemo.java requires no other files. */
public class FrameDemo {
    /**
     * Create the GUI and show it.  For thread safety,
     * this method should be invoked from the
     * event-dispatching thread.
     */
    private static void createAndShowGUI() {
        //Create and set up the window.
        JFrame frame = new JFrame("FrameDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JLabel emptyLabel = new JLabel("");
        emptyLabel.setPreferredSize(new Dimension(175, 100));
        frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);

        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] …
Run Code Online (Sandbox Code Playgroud)

java eclipse macos swing jfreechart

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

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

动态调整JScrollPane的大小?

我有两个文件.一个扩展JFrame,另一个扩展JPanel.每当我改变帧的大小时,无论是最大化,拖动还是其他什么,我都希望ScrollPane能够适应帧的当前大小.除此之外,还有一个顶级菜单栏和一个底栏,但为了简单起见,我把它们留了下来.

基本上,我希望它像记事本一样工作.

现在,我在框架上使用ComponentListener,在另一个类中调用setSize方法.setSize方法只是:

public void resize(int x, int y)
{
textA.setPreferredSize(new Dimension(x, y-50));

areaScrollPane.setPreferredSize(new Dimension(x,y-50));
}
Run Code Online (Sandbox Code Playgroud)

另外,供参考:

public void componentResized(ComponentEvent e)
 {
     textA.resize(panel.getWidth(),panel.getHeight());
  }
Run Code Online (Sandbox Code Playgroud)

仅供参考,它扩展了JPanel,因为我将其添加到框架中:

panel = (JPanel) this.getContentPane();
panel.setLayout(new BorderLayout());
panel.add(textA, BorderLayout.CENTER);
Run Code Online (Sandbox Code Playgroud)

那么最好的方法是什么?谢谢!

编辑:这是滚动窗格文件.它在我的主要部分称为textA.

    public class TextArea extends JPanel
    {

    JTextArea textA=new JTextArea(500,500);

    JScrollPane areaScrollPane = new JScrollPane(textA);
    Toolkit toolkit =  Toolkit.getDefaultToolkit ();
    Dimension dim = toolkit.getScreenSize();
    Dimension dim2=(new Dimension((int)(dim.getWidth()),(int)(dim.getHeight()-120)));
    public TextArea()
    {
        //textA.setLineWrap(true);
        //textA.setWrapStyleWord(true);
        textA.setEditable(true);
        textA.setForeground(Color.WHITE);

        textA.setBackground(Color.DARK_GRAY);
        this.setFont(null);



        areaScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
        areaScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        areaScrollPane.setMinimumSize(new Dimension(300,300));
        areaScrollPane.setSize(new Dimension(800,800));
        textA.setPreferredSize(dim2);
        areaScrollPane.setPreferredSize(dim2);
        areaScrollPane.setMaximumSize(dim2);
        add(areaScrollPane); …
Run Code Online (Sandbox Code Playgroud)

java resize dynamic jscrollpane jtextarea

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

Java:在JTextPane上注册<ENTER>键

我正在使用具有JTextPane的java创建应用程序.我想能够在enter按下键时(或当用户进入下一行时)执行一些代码.我在网上看了一下,没有找到解决方案.使用C#解决这个问题会更好吗?如果没有,我如何在JTextPane的keyTyped()事件中注册Enter键?如果C#是一个不错的选择,我将如何在C#中执行此操作?

这是我认为可行的解决方案......但没有

//Event triggered when a key is typed
private void keyTyped(java.awt.event.KeyEvent evt) {
    int key = evt.getKeyCode();
    if (key == KeyEvent.VK_ENTER) {
        Toolkit.getDefaultToolkit().beep();
        System.out.println("ENTER pressed");
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么上面的例子不起作用是因为无论我按哪个键,我得到一个0的keyCode.我更喜欢用Java解决这个问题但是C#也可以工作,也许更好.另外,请尝试用示例而不是链接回答问题(除非您确实需要).谢谢!

java swing keycode jtextpane actionlistener

9
推荐指数
1
解决办法
2万
查看次数

如何移动(或做任何事情)鼠标

我正在尝试学习如何使用Java和JNA(Java Native Access)与Windows API进行交互,但我正处于障碍之中.我试图让鼠标通过在鼠标输入流上排队鼠标事件来做某事,并且代码有效,因为该SendInput(...)方法返回1表示它已成功排队事件,但鼠标本身什么都不做.

我的SSCCE:

编辑:编辑以填写dwFlags字段.我已经尝试了几种常量组合,无论是自己还是比特或组合都没有成功.同样,SendInput方法返回1,因为它应该建议一个正常运行的方法,但鼠标不会让步:

import com.sun.jna.Native;
import com.sun.jna.platform.win32.WinDef.*;
import com.sun.jna.platform.win32.WinUser.*;
import com.sun.jna.win32.StdCallLibrary;

public class MouseUtils {
   public interface User32 extends StdCallLibrary {
      public static final long MOUSEEVENTF_MOVE = 0x0001L; 
      public static final long MOUSEEVENTF_VIRTUALDESK = 0x4000L; 
      public static final long MOUSEEVENTF_ABSOLUTE = 0x8000L;

      User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class);
      DWORD SendInput(DWORD dWord, INPUT[] input, int cbSize);
   }

   public static void main(String[] args) {
      INPUT input = new INPUT();
      input.type = new DWORD(INPUT.INPUT_MOUSE);

      input.input.mi.dx …
Run Code Online (Sandbox Code Playgroud)

java mouse winapi jna

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