小编kle*_*tra的帖子

如何以及在何处在代码中添加ActionListener?

我写了下面的代码,里面有一个文本字段和一个按钮.输入字符并按下按钮后,将创建一个标签,其标题与在字段中输入的标题相同.

几个选项卡可以以相同的方式创建.....现在再次在新选项卡中,文本字段和按钮存在一个长文本窗格以显示结果....

我想在每个标签的文本窗格中显示输入到文本字段的文本...

现在请带领我学习如何以及在哪里将监听器放在选项卡的按钮上......并推荐任何其他必需的监听器(我认为应该有另一个监听器来指导我关注或选择的选项卡).

应该提到的是,我已将这些选项卡添加到数组列表中以供任何重用,但我不知道我是否正确或如何使用它?

package test;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.JTextPane;

public class TestGUI extends JFrame {


    private JTextField jTextField1;
    private JButton jButton1;
    static ArrayList<JPanel> ary = new ArrayList<JPanel>();
    private int tabIndex = 0;
    static int index = 0;
    private JTabbedPane tabbedPane;

    /**
    * @param args
    */
    public TestGUI() {

        super("Testing Tab Frame");
        setLayout(null);

        Handler but1 = new Handler();

        jTextField1 = new JTextField();
        jTextField1.setVisible(true);
        jTextField1.setBounds(12, 12, …
Run Code Online (Sandbox Code Playgroud)

java swing actionlistener jtabbedpane

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

在文本字段旁边添加文本以描述用户期望输入的数据

我正在尝试创建一个模拟记录存储的简单GUI.我还处于起步阶段.

当我尝试添加文本来描述用户期望在文本字段中输入的内容时,我遇到了麻烦.

另外,我也无法将每个文本字段放在自己的行上.换句话说,如果一行中有两个文本字段的空间,那么它将显示在一行中,并且我试图在其自己的行上显示每个文本字段.

这是我到目前为止所尝试的:

item2 = new JTextField("sample text");
Run Code Online (Sandbox Code Playgroud)

但是上面的代码只是在文本字段中添加了默认文本,这不是我需要的:/

我提前感谢所有的帮助.

public class MyClass extends JFrame{
        private JTextField item1;
        private JTextField item2;

        public MyClass(){
            super("Matt's World of Music");
            setLayout(new FlowLayout());

            item1 = new JTextField();
            item2 = new JTextField();

            add(item1);
            add(item2);

            thehandler handler = new thehandler();

            item1.addActionListener(handler);
            item2.addActionListener(handler);   

        }

    }
Run Code Online (Sandbox Code Playgroud)

java swing tooltip layout-manager

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

谜题:这个片段有什么问题

......它是如何发生的(猜测允许,当然:-)

@Override
public int convertChildIndexToModel(int modelIndex) {
    return getRowSorter() != null ? getRowSorter()
            .convertRowIndexToView(modelIndex) : modelIndex;
}

@Override
public int convertChildIndexToView(int viewIndex) {
    return getRowSorter() != null ? getRowSorter()
            .convertRowIndexToModel(viewIndex) : viewIndex;
}
Run Code Online (Sandbox Code Playgroud)

是的,白痴是我;-)

java swing jtable tablerowsorter

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

闲置时JVM锯齿模式?JVM在此期间做了什么?

我在想.我有一个带有servlet的简单Java Web项目.当没有用户使用它时(我在GlassFish上本地托管它)我仍然在进程的内存使用中看到锯齿模式.我似乎无法理解JVM正在做什么?我理解JVM使用的内存的正常流程.堆正在填充应用程序正在创建的对象.在某个时刻,堆到达垃圾收集器进入的点,这将删除所有不再使用的"缓存"对象,以便可以创建新对象并填充堆大小.

我想知道的是,JVM在空闲时一直在做什么? 在此输入图像描述

编辑:

就像我在评论中说的那样.我在Eclipse中创建了一个非常简单的Java应用程序,它显示了一个Swing窗口,上面写着'hello world'.当我在Java VisualVM中观察JVM的内存使用情况时,我看到了相同的锯齿模式.

java memory swing jvm

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

以编程方式编辑TreeView/TreeItem

编辑#2:因为它看起来像一个bug我已经在javaFx-jira中发布了一个错误报告.您必须拥有一个帐户才能访问该问题.如果有新信息,我会保持这篇文章是最新的.

原帖: 我有一个带按钮和TreeView的简单UI.如果按下按钮,则应该在TreeView中添加一个新项目.该项目一出现在树中就应该可以编辑.

import javafx.fxml.FXML;
import javafx.scene.control.TreeItem;
import javafx.scene.control.TreeView;
import javafx.scene.control.cell.TextFieldTreeCell;
import javafx.util.converter.DefaultStringConverter;

public class ClientController {

    @FXML
    private TreeView<String> tree;

    public void initialize() {
        tree.setEditable(true);
        tree.setCellFactory(p -> new TextFieldTreeCell<>(new DefaultStringConverter()));

        TreeItem<String> root = new TreeItem<>();
        root.setValue("Items");
        root.setExpanded(true);

        tree.setRoot(root);
    }

    @FXML
    public void createItem() {
        TreeItem<String> newItem = new TreeItem<>();
        newItem.setValue("Item " + tree.getExpandedItemCount());

        tree.getRoot().getChildren().add(newItem);
        tree.requestFocus();
        tree.getSelectionModel().select(newItem);
        tree.edit(newItem);
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用的CellFactory是JavaFX api的一部分.

如果我查看api文档(TreeView#edit),我的网站上没什么可做的.

我通过谷歌找到类似的例子很多这样为每个TreeItem上下文菜单.有用,但不完全是我想要的,现在.

如果我选择/双击UI中的项目,我可以编辑任何以前创建的和现有的TreeItem.我错过了什么吗?

编辑#1:

如果createItem方法更改为以下代码:

@FXML
public void createItem() …
Run Code Online (Sandbox Code Playgroud)

java treeview javafx-8

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

Eclipse/Java9:如何访问内部javafx包?

我的背景:

  • Eclipse IDE for Java Developers,版本:Oxygen.1a发行版(4.7.1a),Build id:20171005-1200oxygen
  • jdk9.0.1
  • win10

简单的东西:

import com.sun.javafx.scene.control.LambdaMultiplePropertyChangeListenerHandler;

import javafx.application.Application;
import javafx.stage.Stage;

public class ImportCom extends Application {

    @Override
    public void start(Stage arg0) throws Exception {
        new LambdaMultiplePropertyChangeListenerHandler();

    }

}
Run Code Online (Sandbox Code Playgroud)

因为而不会编译

The type com.sun.javafx.scene.control.LambdaMultiplePropertyChangeListenerHandler is not accessible
Run Code Online (Sandbox Code Playgroud)

该怎么办?

看起来相似,但现在内部类;)已经编译,直到beta9支持的补丁530,但没有后 - 所以保持旧的氧气作为黄金宝...

注意:交叉发布到eclipse论坛

编辑:

刚刚在命令行上检查了javac的行为:

C:\Users\kleopatra\ox-1a-64\dummy\src>\java\jdk\190-64\bin\javac first\ImportCom.java
first\ImportCom.java:3: error: package com.sun.javafx.scene.control is not visible
import com.sun.javafx.scene.control.LambdaMultiplePropertyChangeListenerHandler;
                           ^
  (package com.sun.javafx.scene.control is declared in module javafx.controls, which does not export it to the unnamed module)
1 …
Run Code Online (Sandbox Code Playgroud)

eclipse javafx java-9

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

刷新JTable JAVA

我想在插入或删除数据时立即刷新JTable,我在论坛上遇到了问题,但解决方案对于他们的示例来说太特殊了,是否有一般的方式如何在同一页面上的任何事件上刷新JTable?特别是当事件更改表模型所依赖的数据时

java swing swing-app-framework

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

在我调整窗口大小之前,ScrollPane不会显示

我是一个java新手,我正在开发一个带菜单,scrollpane和textarea的简单应用程序.

到目前为止,我已经在表单上得到了我想要的所有内容,但是当我启动我的应用程序时,滚动窗格/文本区域将不会显示,直到我重新调整窗口.

我尝试使用其他论坛上建议的重绘方法来解决类似问题,但它没有用,也许我没有正确使用它:S

这是我的班级:

public class FenetreEditeur {

public static void main(String[] args){
    FenetreEditeur f = new FenetreEditeur();
}

public FenetreEditeur(){
    JFrame frame = new JFrame();
    frame.setVisible(true);
    frame.setSize(400,400);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null);

    initMenuBar(frame);

    JTextArea areaMain = new JTextArea();
    JScrollPane scrollPane = new JScrollPane(areaMain);

    frame.add(scrollPane);
}

private void initMenuBar(JFrame frame){
    JMenuBar menu = new JMenuBar();

    JMenu revision = new JMenu("Revision");

    JMenuItem statistiques = new JMenu("Statistiques");
    JMenuItem grammaire = new JMenu("Grammaire et orthographe");
    JMenuItem analyse = new JMenu("Analyse Automatique");

    menu.add(revision);

    revision.add(statistiques);
    revision.add(grammaire);
    revision.add(analyse);

    frame.setJMenuBar(menu); …
Run Code Online (Sandbox Code Playgroud)

java swing

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

BorderLayout.CENTER中的JScrollPane不会调整大小

这是下面的代码,问题是JScrollPane保持其首选大小,并且不会使用BorderLayout.CENTER区域调整大小.我希望它填充该区域,当然..并使用它来滚动其中的表的内容.

frame = new JFrame();
frame.setBounds(100, 100, 500, 400);
JPanel panelCenter = new JPanel();
FlowLayout flowLayout = (FlowLayout) panelCenter.getLayout();
flowLayout.setAlignment(FlowLayout.LEFT);
panelCenter.setPreferredSize(new Dimension(300, 400));

panelRight = new ActorDrawer();
frame.getContentPane().add(panelRight, BorderLayout.EAST);
panelRight.setLayout(null);
panelRight.setPreferredSize(new Dimension(200, 400));
frame.getContentPane().add(panelCenter, BorderLayout.CENTER);

table = new JTable(new MyTableModel());
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JScrollPane scrollPane = new JScrollPane(table);
table.setFillsViewportHeight(true);
panelCenter.add(scrollPane);
Run Code Online (Sandbox Code Playgroud)

java swing layout-manager

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

MigLayout对JScrollBar对象中包含的JTable对象感到困惑

看来MigLayout被JScrollPane对象中包含的JTable对象搞糊涂了.由于在JScrollPane中使用JTable似乎很常见,我认为找出原因很重要.

在附加的示例程序中,创建了一个简化的表单,由12行和4列组成.所有宽度和高度均设置为百分比.表单中添加了许多组件,所有组件都按单元格位置添加.一些跨越行或列.最后一列显示单元格行索引和大小百分比.

如果程序以参数"JLabel"启动,则JSCrollPane中包含的JLabel将添加到第0列,所有对齐看起来都很好.如果程序以参数"JTable"启动,则所有列的行大小都会中断.

这是一个错误还是一个功能?

Make:  javac -classpath <path to miglayout> migtest.java
Usage:  java -classpath <path to miglayout> migtest <JTable|JLabel>
Run Code Online (Sandbox Code Playgroud)

注意:如果下面的代码看起来是混淆的(没有标签),我尝试了各种粘贴方法 - 我无法让预览看起来正确.让我知道我能做些什么来解决它.

import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.util.*;
import java.io.*;
import java.text.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.filechooser.*;
import javax.swing.table.*;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableColumn;
import net.miginfocom.swing.MigLayout;

public class Migtest extends JFrame {
    public final static int appWidth = 1200; // default

    public final static int appHeight = 800; // default

    String[] clientColNames = { "Name", "Address", …
Run Code Online (Sandbox Code Playgroud)

swing jtable jscrollpane miglayout

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