I watch the NFL using their online product NFL GamePass (similar to NFL GameRewind to those of you in the U.S), which is an Adobe Flash based video streaming service. I usually watch more than one game during the week and prefer not to know the score beforehand. This can be hard because the video streams come mostly from CBS and Fox who run a scrolling results bar along the bottom of the screen. GamePass does not offer anything to hide these.

I wrote a Java program last year which was pretty much just a black JPanel, along with a menu I could use to adjust the dimensions (for different TVs). This JPanel was draggable, so I could make it say 150 pixels high, full screen width and drag it to the bottom such that it just covered the score bar and no more.

This worked fine all of last year, but something seems to have changed in Flash and the setAlwaysOnTop command no longer puts this draggable panel above the fullscreen Flash. This is true on both Windows 7 and OSX. Is there anything more I can do in order to force this panel further on top. Windows 7 is now my primary system.

Any lateral thinking as to other things I can do to accomplish the same thing would also be appreciated, in Java, using another language, or using another program. I cannot do anything like stretch the Flash window and place the bottom part past the screen boundary. It is either fullscreen or ~800px wide, it does not resize.

Thanks, code below which has not changed since I used it last year (December):

Java Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class BlackBar
{
	public static void
	main( String[] args )
	{
        SwingUtilities.invokeLater(new Runnable() {
            
            public void run() {
                Listener l = new Listener();
                l.setVisible(true);
            }
        });
	}
}
Java Code:
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Listener extends JFrame implements ActionListener {
    
    private JList list;
    private DefaultListModel model;
    
    public JTextField xField;
    public JTextField yField;
    
    JFrame bar;
    
    public Listener() {
        initUI();
    }
    
    public final void initUI() {
        
        JPanel panel = new JPanel(new GridLayout(3, 2, 5, 15));
        
        JLabel xLabel = new JLabel("X", null, JLabel.CENTER);
        xLabel.setBounds(30,50,80,25);
        JLabel yLabel = new JLabel("Y", null, JLabel.CENTER);
        yLabel.setBounds(30,50,80,25);
        
        xField = new JTextField(15);
        xField.setBounds(30, 70, 80, 25);
        xField.setText("1500");
        
        yField = new JTextField(15);
        yField.setBounds(30, 110, 80, 25);
        yField.setText("150");
        
        model = new DefaultListModel();
        list = new JList(model);
        list.setBounds(150, 30, 220, 150);
        
        JButton okButton = new JButton("Ok");
        okButton.setBounds(30, 35, 80, 25);
        
        okButton.addActionListener(this);
        
        panel.add(xLabel);
        panel.add(xField);
        
        panel.add(yLabel);
        panel.add(yField);

        add(panel);
        panel.add(okButton);
        
        setTitle("Event object");
        setSize(420, 250);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        
        bar = new JFrame();
		bar.setUndecorated( true );  // no titlebar, etc.
		bar.setLocation( 10, 600 );  // x, y
		bar.setSize( 1500, 150 );  // width, height
		//bar.setBackground( Color.black );
		bar.getContentPane().setBackground(Color.black);
		bar.getRootPane().putClientProperty( "Window.shadow", Boolean.FALSE );
		bar.getRootPane().putClientProperty( "apple.awt.draggableWindowBackground", Boolean.TRUE );
		bar.setVisible( true );
		bar.setAlwaysOnTop(true);
    }
    
    public void actionPerformed(ActionEvent e) {
        
        String xString = this.xField.getText();
        String yString = this.yField.getText();
        this.bar.setSize(Integer.parseInt(xString) , Integer.parseInt(yString) );
        
        Locale locale = Locale.getDefault();
        Date date = new Date(e.getWhen());
        String s = DateFormat.getTimeInstance(DateFormat.SHORT,
                                              locale).format(date);
        
        if (!model.isEmpty()) {
            model.clear();
        }
        
        if (e.getID() == ActionEvent.ACTION_PERFORMED) {
            model.addElement("Bar set to X(" + xString + ") : Y(" + yString + ")");
        }
    }
}