有没有人知道如何在使用Nimbus LookAndFeel时更改JProgressBar的颜色?
我能够使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) 我正在尝试编写一个基于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) 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.那么我需要改变什么呢?
我正在尝试使用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) 我有一个表调用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中创建TCP套接字?
如何创建这样的TCP连接只有在我告诉它时它才会终止,否则它会保持打开状态?
如何使用Keepalive来了解服务器或客户端是否仍然可用?
请帮忙!
我正在构建一个小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) 在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)
这似乎是在命中检测过程中调用的.如果是这样的话,那么在没有太大机会进行调整的情况下,它会非常深入.
问题:
代码示例:
package fx.control;
import javafx.application.Application;
import javafx.scene.Parent;
import …Run Code Online (Sandbox Code Playgroud) 我在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 ×10
swing ×8
javafx-8 ×2
jtable ×2
arraylist ×1
colors ×1
highlight ×1
javafx ×1
jbutton ×1
jframe ×1
jlist ×1
jprogressbar ×1
jtableheader ×1
keylistener ×1
mouseevent ×1
nimbus ×1
osgi ×1
printing ×1
transparency ×1