小编kle*_*tra的帖子

使用Java的SwingWorker超时完成任务

我正在尝试SwingWorker在我的应用程序中实现一个类.有没有办法设置一段时间,之后,SwingWorker"超时"?我在想,可能会抛出一个OutOfTime我可以抓住然后处理的异常.我只是不确定如何实现它.

感谢你的帮助!

java swing timeout swingworker

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

使用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
查看次数

突出显示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
查看次数

JTable单元格值更改侦听器

可以使用哪个侦听器来响应JTable单元格值更改的事件?我尝试使用TableModelListener但是我得到了一些错误,或者这个监听器没有对更改单元格的内容做出反应.

我需要采取行动改变细胞内容或细胞失去焦点.做这个的最好方式是什么?谢谢.

swing jtable listener

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

JTextField仅限于某些字符的输入

我想创建JTextField,其输入字符仅限于"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVXYWZZ0123456789 +&## /%?= ~_- |!:,.;" 所以我试着压倒一切

public class CustomJTextField extends JTextField {  
String goodchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVXYWZZ0123456789+&@#/%?=~_-|!:,.;";

//... my class body ...//

@Override
public void processKeyEvent(KeyEvent ev) {
    if(c != '\b' && goodchars.indexOf(c) == -1 ) {
        ev.consume();
        return;
    }
    else 
        super.processKeyEvent(ev);}}
Run Code Online (Sandbox Code Playgroud)

但它不是我想要的,因为用户不能再按ctrl-c ctrl -v ctrl-x ...所以我加入了

&& ev.getKeyCode() != 17 && ev.getKeyCode() !=67 && ev.getKeyCode() != 86 && ev.getKeyCode() !=0 &&
Run Code Online (Sandbox Code Playgroud)

到if条件,但现在用户可以粘贴不适当的输入,即'('或'<',没有任何问题......我该怎么办?

java validation swing keyevent jtextfield

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

JTabbedPane中固定位置或一行中的选项卡

在我们的应用程序中,JTabbedPane具有无限制的选项卡,当选项卡的宽度超过选项卡式窗格的宽度时,选项卡将开始包装成多行.然后,当您单击其中一个上面的行中的选项卡时,整行将向下并到达前景.对于在多个选项卡之间进行点击的用户,由于无法跟踪选项卡顺序,因此非常容易混淆.

我怎么能 - 将标签固定到固定位置,同时将它们的内容放到前面(虽然这会损坏标签隐喻,但我不在乎),或者 - 将行数限制为一个(因此标签变得很好)狭窄而不是包装)?

java swing tabs jtabbedpane

5
推荐指数
2
解决办法
2402
查看次数

将提示文本属性添加到JTextfield

我正在使用Netbeans IDE.我想以JTextfield这样的方式给出提示文本:当用户输入文本时,JTextField它被清除并接受用户输入.

java swing netbeans jtextfield

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

重新粉刷另一个JPanel里面的JPanel

这是事情:

public class ParentPanel extends JPanel{
    private ChildPanel childPanel;
    public ParentPanel() {
        super();
        initComponents();
    }
    public void pushData(int data){
        childPanel.pushData(data);
    }
    private void initComponents() {
        childPanel= new ChildPanel();
}
Run Code Online (Sandbox Code Playgroud)

我有另一个班:

public class ChildPanel extends JPanel{
    public ChildPanel(){
        super();
    }
    public void paintComponent(Graphics g){
        //I draw some lines in this JPanel according to data
    }
    public void pushData(int data){
        repaint();
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要的是pushData()在调用ChildPanel中的方法时绘制一些行.但现在ChildPanel内部没有响应.我该怎么办?

java swing jpanel

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