小编kle*_*tra的帖子

使用Nimbus更改JProgressBar的颜色?

有没有人知道如何在使用Nimbus LookAndFeel时更改JProgressBar的颜色?

java swing colors jprogressbar nimbus

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

如何在完全透明的JFrame上创建部分透明的JButton?

我能够使JFrame完全透明,JButton部分透明,直到我在按钮上移动鼠标(不要单击)并从按钮移开鼠标(通过MouseListener调用MouseExited).会发生什么是JButton的背景再次被绘制,所以在按钮上打开和关闭几个鼠标后,按钮完全不透明.

public class ButtonExample extends JWindow
{
   public ButtonExample( )
   {
        JButton But = new JButton( "Testing" );
        But.setBackground( new Color( 0, 0, 0, 200 ) );
        But.setForeground( new Color( 70, 155, 255 ) );
        this.add( But );
        this.setBackground( new Color( 0, 0, 0, 0 ) );
        this.setMinimumSize( new Dimension( 200,100 ) );
        this.setVisible( true );
    }

    public static void main( String[ ] Args ) 
    {
        new ButtonExample( );
    }
}
Run Code Online (Sandbox Code Playgroud)

java swing transparency jframe jbutton

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

在桌面独立应用程序中使用OSGi

我正在尝试编写一个基于OSGi的桌面应用程序.我有一个Swing JFrame,我想添加添加模块(其他包)的可能性.我在JSig教程中浏览了EclipseZone OSGi,但每个应用程序都是从OSGi Framework(在本例中为Knopflerfish OSGi Desktop)启动的.

所以我的问题是,是否有一个选项可以在没有可见的OSGi框架的情况下启动应用程序?我知道,从代码中,可以更改bundle的属性,但是如何以这种方式更改框架的属性?(例如,默认捆绑存储位置,捆绑在位置时的默认操作等?)

public class MainFrame extends ServiceTracker implements BundleActivator {

    public MainFrame(BundleContext context, JToolBar toolBar) {
        // select, which services is the bundle tracking
        super(context, JMenu.class.getName(), null);
    }

    @Override
    public void start(BundleContext context) throws Exception {
        //display a JFrame
    }

    @Override
    public void stop(BundleContext context) throws Exception {
        //hide a JFrame
    }

    @Override
    public Object addingService(ServiceReference reference) {
        // Process a Service and return a JMenu
        return new JMenu();
    }

    @Override …
Run Code Online (Sandbox Code Playgroud)

java swing osgi

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

如何简单地实现KeyListener?

public class MyPanel extends JPanel implements KeyListener {
    private char c = 'e';
    public MyPanel() {
        this.setPreferredSize(new Dimension(500,500));
        addKeyListener(this);
    }
    public void paintComponent(Graphics g) {
        super.repaint();
        g.drawString("the key that pressed is" + c, 250,250);
    }

    public void keyPressed(KeyEvent e) {
        c=e.getKeyChar();
        repaint();

    }

    public void keyReleased(KeyEvent e) {
    }


    public void keyTyped(KeyEvent e) {
        c=e.getKeyChar();
        repaint();
    }

    public static void main(String[] s) {
        JFrame f=new JFrame();
        f.getContentPane().add(new MyPanel());
        f.pack();
        f.setVisible(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试阅读这个但没有管理以了解如何简单地实现KeyListener.那么我需要改变什么呢?

java swing keylistener

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

JList重复选择

我正在尝试使用Swing,并决定专注于将JList与Objects的arraylist结合使用.

我想创建一个显示空白JList的程序,当按下按钮时,它会显示arraylist的内容,并允许单个选择打印出所选的内容.

我当前的代码完成了上述所有操作,但是当我单击JList上的单个条目时,它会将其打印两次.我觉得这是一个简单的错误,很容易纠正,但我一直在阅读它,我的大脑已停止合作.

任何帮助将不胜感激.提前致谢 :)

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import javax.swing.event.*;


public class textarea {

    ArrayList <Pet> petList = new ArrayList <Pet> ();
    DefaultListModel model = new DefaultListModel();
    JList list = new JList();

    public static void main (String [] args){

        textarea gui = new textarea();
        gui.go();
    }

    public void go(){

        petList.add(new Pet("Lucy","Dog",5));
        petList.add(new Pet("Geoff","Cat",2));
        petList.add(new Pet("Hammond","Hamster",1));

        model = new DefaultListModel();
        for(Pet p:petList){
            model.addElement(p.toString());
        }

        JFrame frame = new JFrame();
        JPanel panel = new JPanel();
        JButton button …
Run Code Online (Sandbox Code Playgroud)

java swing arraylist jlist

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

如何使用JTable使用MessageFormat打印多个标题行

我有一个表调用table并填充了数据,我还有一个MessageFormat标题我想用作标题来打印JTable这个是MessageFormat:

MessageFormat header = new  MessageFormat("Product: "
                    + task.getProductName() + "  Job: "
                    + task.getJobNumber() + "  Task: " + task.getTaskID()
                    );
Run Code Online (Sandbox Code Playgroud)

我想在标题中打印3行,一行用于Product,Job和Task

我打印的方式table是这样的:

table.print(JTable.PrintMode.FIT_WIDTH, header, null);
Run Code Online (Sandbox Code Playgroud)

我似乎无法弄清楚如何在3个单独的行中打印标题,我尝试使用它\n来创建一个新行,但这似乎不起作用.

java printing swing jtable messageformat

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

Java TCP连接

如何在Java中创建TCP套接字?

如何创建这样的TCP连接只有在我告诉它时它才会终止,否则它会保持打开状态?

如何使用Keepalive来了解服务器或客户端是否仍然可用?

请帮忙!

java

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

突出显示JTable的列标题

我正在构建一个小JTable,并且当选择一个单元格以便更容易地找到该单元格的关联名称时,我想突出显示列标题(和行标题 - 行标题部分实际上正在工作).这是一张图片:

在此输入图像描述

我已经尝试使用以下方法切换标题的渲染器:

table.getTableHeader().setDefaultRenderer(new ColumnHeaderRenderer());
Run Code Online (Sandbox Code Playgroud)

但是只有当我点击标题并且总是说isSelected为false时才会调用它.

这是我用于行名的代码,包括渲染器内的高亮 - 代码不是由我,我只是修改了一下:

/*
 *  Use a JTable as a renderer for row numbers of a given main table.
 *  This table must be added to the row header of the scrollpane that
 *  contains the main table.
 */
public class RowNameTable extends JTable
        implements ChangeListener, PropertyChangeListener {

    private JTable main;

    public RowNameTable(JTable table) {
        main = table;
        main.addPropertyChangeListener(this);

        setFocusable(false);
        setAutoCreateColumnsFromModel(false);
        setModel(main.getModel());
        setSelectionModel(main.getSelectionModel());

        TableColumn column = new TableColumn();
        column.setHeaderValue(" ");
        addColumn(column);
        column.setCellRenderer(new RowNameRenderer(main)); …
Run Code Online (Sandbox Code Playgroud)

java swing jtable highlight jtableheader

6
推荐指数
2
解决办法
3295
查看次数

如何允许将MouseEvents分派给禁用的节点?

在fx中,mouseEvents不会被分派到禁用的节点,最后是一个演示行为的快速示例.

对于像我这样的Swinger,这有点令人惊讶:在我的土地上,事件被传递,目标(ui-delegate)的任务是决定是否应该处理事件.实际上是由最近的一个 - 完全有效的IMO 用例 - 在禁用的组件上显示工具提示而指出的

从技术上讲,在一个Node的impl方法中,调度似乎被切断了:

/**
 * Finds a top-most child node that intersects the given ray.
 *
 * The result argument is used for storing the picking result.
 */
@Deprecated
public final void impl_pickNode(PickRay pickRay, PickResultChooser result) {

    // In some conditions we can omit picking this node or subgraph
    if (!isVisible() || isDisable() || isMouseTransparent()) {
        return;
    }
Run Code Online (Sandbox Code Playgroud)

这似乎是在命中检测过程中调用的.如果是这样的话,那么在没有太大机会进行调整的情况下,它会非常深入.

问题:

  • 我的代码有什么问题(很容易错过一些明显的东西;-)
  • 以上是真正的根本原因吗?
  • 是否有任何可配置的选项来强制发送?如果是这样,怎么样?
  • 行为的规格在哪里?看看教程/ api doc但找不到任何东西.

代码示例:

package fx.control;

import javafx.application.Application;
import javafx.scene.Parent;
import …
Run Code Online (Sandbox Code Playgroud)

java swing mouseevent javafx-8

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

仅在Spinner控件中插入数字

我在Java 8u40中测试了Spinner控件

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.Spinner;
import javafx.scene.control.SpinnerValueFactory;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;

public class MainApp extends Application
{
    public static void main(String[] args)
    {
        Application.launch(args);
    }

    @Override
    public void start(Stage stage)
    {
        final Spinner spinner = new Spinner();

        spinner.setValueFactory(new SpinnerValueFactory.IntegerSpinnerValueFactory(0, 10000));
        spinner.setEditable(true);

        GridPane grid = new GridPane();
        grid.setHgap(10);
        grid.setVgap(10);
        grid.setPadding(new Insets(10));

        int row = 0;

        grid.add(new Label("Spinner:"), 0, row);
        grid.add(spinner, 1, row);

        Scene scene = new Scene(grid, 350, 300);

        stage.setTitle("Hello Spinner");
        stage.setScene(scene);
        stage.show();
    } …
Run Code Online (Sandbox Code Playgroud)

java javafx javafx-8

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