JInternalFrame Close Button y Offset

I am trying to use a larger icon for my close button on a JInternalFrame.
I can easily change the close icon to be something larger than the default. However, the y offset is not correct and it doesn't fit all the way on the title bar. The top of the icon is clipped by the window. So I need to shift the y location of the button down a few pixels.
I have acquired this button component, but when I change the location of the button's Y position (button.setLocation(oldX, newY) - nothing happens.
I suspect that I am simply doing this incorrectly and there is probably an easier way in changing the y offset of the button.
Thanks for the help.

Thanks for the hint. I looked at the source and they do seem to do some hard coding with the sizes of the icons and they appear to make them to be 14 pixels in height (in the public void layoutContainer(Container c) method on the inner Handler class).
So this seems to be a tricky thing to change...
Update: So I looked at the code and I saw I needed to change some of the values in the underlying inner classes. I had to make my own Handler and JMenuBar with the included code. I was then able to set the values for the icon height. They do a lot of checks to keep it at 16 or so pixels. It is messy but seems to work.
Thanks - I marked you as helpful so you can get some points!
Edited by: kilosi on Dec 19, 2011 12:26 PM
Edited by: kilosi on Dec 19, 2011 12:28 PM

Similar Messages

  • Adding Icon and increasing width of tabpages to show the close button in a tabcontrol

    I have this code right now,
    Public Class FSMTabControl
    Inherits TabControl
    #Region "Declarations"
    Private _TextColour As Color = Color.FromArgb(255, 255, 255)
    Private _BackTabColour As Color = Color.FromArgb(54, 54, 54)
    Private _BaseColour As Color = Color.FromArgb(35, 35, 35)
    Private _ActiveColour As Color = Color.FromArgb(47, 47, 47)
    Private _BorderColour As Color = Color.FromArgb(30, 30, 30)
    Private _UpLineColour As Color = Color.FromArgb(0, 160, 199)
    Private _HorizLineColour As Color = Color.FromArgb(23, 119, 151)
    Private CenterSF As New StringFormat With {.Alignment = StringAlignment.Center, .LineAlignment = StringAlignment.Center}
    #End Region
    #Region "Properties"
    <Category("Colours")> _
    Public Property BorderColour As Color
    Get
    Return _BorderColour
    End Get
    Set(value As Color)
    _BorderColour = value
    End Set
    End Property
    <Category("Colours")> _
    Public Property UpLineColour As Color
    Get
    Return _UpLineColour
    End Get
    Set(value As Color)
    _UpLineColour = value
    End Set
    End Property
    <Category("Colours")> _
    Public Property HorizontalLineColour As Color
    Get
    Return _HorizLineColour
    End Get
    Set(value As Color)
    _HorizLineColour = value
    End Set
    End Property
    <Category("Colours")> _
    Public Property TextColour As Color
    Get
    Return _TextColour
    End Get
    Set(value As Color)
    _TextColour = value
    End Set
    End Property
    <Category("Colours")> _
    Public Property BackTabColour As Color
    Get
    Return _BackTabColour
    End Get
    Set(value As Color)
    _BackTabColour = value
    End Set
    End Property
    <Category("Colours")> _
    Public Property BaseColour As Color
    Get
    Return _BaseColour
    End Get
    Set(value As Color)
    _BaseColour = value
    End Set
    End Property
    <Category("Colours")> _
    Public Property ActiveColour As Color
    Get
    Return _ActiveColour
    End Get
    Set(value As Color)
    _ActiveColour = value
    End Set
    End Property
    Protected Overrides Sub CreateHandle()
    MyBase.CreateHandle()
    Alignment = TabAlignment.Bottom
    End Sub
    #End Region
    #Region "Draw Control"
    Sub New()
    SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or _
    ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer, True)
    DoubleBuffered = True
    Font = New Font("Segoe UI", 10)
    SizeMode = TabSizeMode.FillToRight
    ItemSize = New Size(240, 32)
    End Sub
    Protected Overrides Sub OnPaint(e As PaintEventArgs)
    Dim g = e.Graphics
    With G
    .SmoothingMode = SmoothingMode.HighQuality
    .PixelOffsetMode = PixelOffsetMode.HighQuality
    .TextRenderingHint = TextRenderingHint.ClearTypeGridFit
    .Clear(_BaseColour)
    Try : SelectedTab.BackColor = _BackTabColour : Catch : End Try
    Try : SelectedTab.BorderStyle = BorderStyle.FixedSingle : Catch : End Try
    .DrawRectangle(New Pen(_BorderColour, 2), New Rectangle(0, 0, Width, Height))
    For i = 0 To TabCount - 1
    Dim Base As New Rectangle(New Point(GetTabRect(i).Location.X, GetTabRect(i).Location.Y), New Size(GetTabRect(i).Width, GetTabRect(i).Height))
    Dim BaseSize As New Rectangle(Base.Location, New Size(Base.Width, Base.Height))
    If i = SelectedIndex Then
    .FillRectangle(New SolidBrush(_BaseColour), BaseSize)
    .FillRectangle(New SolidBrush(_ActiveColour), New Rectangle(Base.X + 1, Base.Y - 3, Base.Width, Base.Height + 5))
    .DrawString(TabPages(i).Text, Font, New SolidBrush(_TextColour), New Rectangle(Base.X + 7, Base.Y, Base.Width - 3, Base.Height), CenterSF)
    .DrawLine(New Pen(_HorizLineColour, 2), New Point(Base.X + 3, CInt(Base.Height / 2 + 2)), New Point(Base.X + 9, CInt(Base.Height / 2 + 2)))
    .DrawLine(New Pen(_UpLineColour, 2), New Point(Base.X + 3, Base.Y - 3), New Point(Base.X + 3, Base.Height + 5))
    Else
    .DrawString(TabPages(i).Text, Font, New SolidBrush(_TextColour), BaseSize, CenterSF)
    End If
    Next
    .InterpolationMode = InterpolationMode.HighQualityBicubic
    End With
    End Sub
    Private Declare Auto Function SetParent Lib "user32" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As IntPtr
    Protected CloseButtonCollection As New Dictionary(Of Button, TabPage)
    Private _ShowCloseButtonOnTabs As Boolean = True
    <Browsable(True), DefaultValue(True), Category("Behavior"), Description("Indicates whether a close button should be shown on each TabPage")> _
    Public Property ShowCloseButtonOnTabs() As Boolean
    Get
    Return _ShowCloseButtonOnTabs
    End Get
    Set(ByVal value As Boolean)
    _ShowCloseButtonOnTabs = value
    For Each btn In CloseButtonCollection.Keys
    btn.Visible = _ShowCloseButtonOnTabs
    Next
    RePositionCloseButtons()
    End Set
    End Property
    Protected Overrides Sub OnCreateControl()
    MyBase.OnCreateControl()
    RePositionCloseButtons()
    End Sub
    Protected Overrides Sub OnControlAdded(ByVal e As System.Windows.Forms.ControlEventArgs)
    MyBase.OnControlAdded(e)
    Dim tp As TabPage = DirectCast(e.Control, TabPage)
    Dim rect As Rectangle = Me.GetTabRect(Me.TabPages.IndexOf(tp))
    Dim btn As Button = AddCloseButton(tp)
    btn.Size = New Size(CInt(rect.Height / 2), CInt(rect.Height / 2))
    btn.Location = New Point(rect.X + rect.Width - rect.Height + 11, CInt(rect.Y + 7))
    SetParent(btn.Handle, Me.Handle)
    AddHandler btn.Click, AddressOf OnCloseButtonClick
    CloseButtonCollection.Add(btn, tp)
    End Sub
    Protected Overrides Sub OnControlRemoved(ByVal e As System.Windows.Forms.ControlEventArgs)
    Dim btn As Button = CloseButtonOfTabPage(DirectCast(e.Control, TabPage))
    RemoveHandler btn.Click, AddressOf OnCloseButtonClick
    CloseButtonCollection.Remove(btn)
    SetParent(btn.Handle, Nothing)
    btn.Dispose()
    MyBase.OnControlRemoved(e)
    End Sub
    Protected Overrides Sub OnLayout(ByVal levent As System.Windows.Forms.LayoutEventArgs)
    MyBase.OnLayout(levent)
    RePositionCloseButtons()
    End Sub
    Public Event CloseButtonClick As CancelEventHandler
    Protected Overridable Sub OnCloseButtonClick(ByVal sender As Object, ByVal e As EventArgs)
    If Not DesignMode Then
    Dim btn As Button = DirectCast(sender, Button)
    Dim tp As TabPage = CloseButtonCollection(btn)
    Dim ee As New CancelEventArgs
    RaiseEvent CloseButtonClick(sender, ee)
    If Not ee.Cancel Then
    Me.TabPages.Remove(tp)
    RePositionCloseButtons()
    End If
    End If
    End Sub
    Protected Overridable Function AddCloseButton(ByVal tp As TabPage) As Button
    Dim closeButton As New Button
    With closeButton
    '' TODO: Give a good visual appearance to the Close button, maybe by assigning images etc.
    '' Here I have not used images to keep things simple.
    .Text = "X"
    .FlatStyle = FlatStyle.Flat
    .BackColor = _BaseColour
    .ForeColor = Color.White
    .Font = New Font("Microsoft Sans Serif", 6, FontStyle.Bold)
    End With
    Return closeButton
    End Function
    Public Sub RePositionCloseButtons()
    For Each item In CloseButtonCollection
    RePositionCloseButtons(item.Value)
    Next
    End Sub
    Public Sub RePositionCloseButtons(ByVal tp As TabPage)
    Dim btn As Button = CloseButtonOfTabPage(tp)
    If btn IsNot Nothing Then
    Dim tpIndex As Integer = Me.TabPages.IndexOf(tp)
    If tpIndex >= 0 Then
    Dim rect As Rectangle = Me.GetTabRect(tpIndex)
    If Me.SelectedTab Is tp Then
    btn.BackColor = Color.Red
    btn.Size = New Size(CInt(rect.Height / 2), CInt(rect.Height / 2))
    btn.Location = New Point(rect.X + rect.Width - rect.Height + 11, CInt(rect.Y + 7))
    Else
    btn.BackColor = _BaseColour
    btn.Size = New Size(CInt(rect.Height / 2), CInt(rect.Height / 2))
    btn.Location = New Point(rect.X + rect.Width - rect.Height + 11, CInt(rect.Y + 7))
    End If
    btn.Visible = ShowCloseButtonOnTabs
    btn.BringToFront()
    End If
    End If
    End Sub
    Protected Function CloseButtonOfTabPage(ByVal tp As TabPage) As Button
    Return (From item In CloseButtonCollection Where item.Value Is tp Select item.Key).FirstOrDefault
    End Function
    #End Region
    End Class
    This code shows a perfect tabcontrol as in the picture below,
    I managed to get this code working by combining three other VB themes I found. Right now, I just want to increase the width of the tab so the close button doesn't hides the text. And I want to add a icon to the left of the tab and be able to change it on
    runtime.
    The icons name will be on, off, 1, 2, plus .ico 
    Is it possible ? and is it possible to make the tabs curved at the corner like in chrome.

    Hi,
     I have went through your TabControl class and changed it around a little bit to get something similar to what i think you want.  I made it so that the Tabs are resized with the TabControl itself so that they always fill the width of the TabControl. 
    I also, made the Text of the tabs have its own rectangle which will automatically adjust it`s width according to weather or not the close buttons are shown so the text will never be under the buttons.
     As for the Icons, you could create another small class that inherits from the TabPage base class and add a public property to it for the Icon image.  You would have to use that class to add TabPages and set the Icon property.  Then in the
    TabControl class`s OnPaint overrides sub you would check if the Icon property of the TabPage is set and draw the image if it is.
     I didn`t go that far but, i used the TabPage`s Tag property for the Icon image.  Actually it is just an Image, not an Icon.  So, in the TabControl`s OnPaint overrides sub i check if the TabPage`s Tag property is set to an Image and if it
    is i adjust the Text rectangle to avoid the Image and draw the image.
     I moved the StringFormat to the OnPaint sub and set it to keep the text left aligned so it stayed next to the Image.  You can change it back to the Center if you want.  I also set the StringFormat trimming to EllipsisCharacter so it will
    cut the text off if it is to long to fit between the Image and the Close button.
     You can test it in a new form project first and to check out how it works and what i changed.
    Imports System.ComponentModel
    Imports System.Drawing.Drawing2D
    Imports System.Drawing.Text
    Public Class FSMTabControl
    Inherits TabControl
    #Region "Declarations"
    Private _TextColour As Color = Color.FromArgb(255, 255, 255)
    Private _BackTabColour As Color = Color.FromArgb(54, 54, 54)
    Private _BaseColour As Color = Color.FromArgb(35, 35, 35)
    Private _ActiveColour As Color = Color.FromArgb(47, 47, 47)
    Private _BorderColour As Color = Color.FromArgb(30, 30, 30)
    Private _UpLineColour As Color = Color.FromArgb(0, 160, 199)
    Private _HorizLineColour As Color = Color.FromArgb(23, 119, 151)
    #End Region
    #Region "Properties"
    <Category("Colours")> _
    Public Property BorderColour() As Color
    Get
    Return _BorderColour
    End Get
    Set(ByVal value As Color)
    _BorderColour = value
    End Set
    End Property
    <Category("Colours")> _
    Public Property UpLineColour() As Color
    Get
    Return _UpLineColour
    End Get
    Set(ByVal value As Color)
    _UpLineColour = value
    End Set
    End Property
    <Category("Colours")> _
    Public Property HorizontalLineColour() As Color
    Get
    Return _HorizLineColour
    End Get
    Set(ByVal value As Color)
    _HorizLineColour = value
    End Set
    End Property
    <Category("Colours")> _
    Public Property TextColour() As Color
    Get
    Return _TextColour
    End Get
    Set(ByVal value As Color)
    _TextColour = value
    End Set
    End Property
    <Category("Colours")> _
    Public Property BackTabColour() As Color
    Get
    Return _BackTabColour
    End Get
    Set(ByVal value As Color)
    _BackTabColour = value
    End Set
    End Property
    <Category("Colours")> _
    Public Property BaseColour() As Color
    Get
    Return _BaseColour
    End Get
    Set(ByVal value As Color)
    _BaseColour = value
    End Set
    End Property
    <Category("Colours")> _
    Public Property ActiveColour() As Color
    Get
    Return _ActiveColour
    End Get
    Set(ByVal value As Color)
    _ActiveColour = value
    End Set
    End Property
    Protected Overrides Sub CreateHandle()
    MyBase.CreateHandle()
    Alignment = TabAlignment.Bottom
    End Sub
    #End Region
    #Region "Draw Control"
    Sub New()
    SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or ControlStyles.ResizeRedraw Or ControlStyles.OptimizedDoubleBuffer, True)
    DoubleBuffered = True
    Font = New Font("Segoe UI", 10)
    SizeMode = TabSizeMode.Fixed
    End Sub
    Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
    With e.Graphics
    .SmoothingMode = SmoothingMode.HighQuality
    .PixelOffsetMode = PixelOffsetMode.HighQuality
    .TextRenderingHint = TextRenderingHint.ClearTypeGridFit
    .Clear(_BaseColour)
    Try : SelectedTab.BackColor = _BackTabColour : Catch : End Try
    Try : SelectedTab.BorderStyle = BorderStyle.FixedSingle : Catch : End Try
    .DrawRectangle(New Pen(_BorderColour, 2), New Rectangle(0, 0, Width, Height))
    If Me.Created AndAlso Me.TabCount > 0 Then
    Dim tw As Integer = CInt(Me.ClientSize.Width / Me.TabCount)
    Dim offset As Integer = Me.TabCount
    If Me.ItemSize.Width <> tw - offset Then Me.ItemSize = New Size(tw - offset, 32)
    End If
    Using CenterSF As New StringFormat With {.Alignment = StringAlignment.Near, .LineAlignment = StringAlignment.Center, .Trimming = StringTrimming.EllipsisCharacter, .FormatFlags = StringFormatFlags.NoWrap}
    For i As Integer = 0 To TabCount - 1
    Dim Base As Rectangle = Me.GetTabRect(i)
    Dim txtrect As New Rectangle(Base.Left, Base.Top, Base.Width, Base.Height)
    Dim img As Image = Nothing
    If Me.TabPages(i).Tag IsNot Nothing Then
    txtrect.X += Base.Height
    txtrect.Width -= Base.Height
    img = DirectCast(Me.TabPages(i).Tag, Image)
    End If
    If ShowCloseButtonOnTabs Then
    txtrect.Width -= Base.Height
    End If
    If i = SelectedIndex Then
    .FillRectangle(New SolidBrush(_BaseColour), Base)
    .FillRectangle(New SolidBrush(_ActiveColour), New Rectangle(Base.X + 1, Base.Y - 3, Base.Width, Base.Height + 4))
    .DrawString(TabPages(i).Text, Font, New SolidBrush(_TextColour), txtrect, CenterSF)
    .DrawLine(New Pen(_HorizLineColour, 2), New Point(Base.X + 3, CInt(Base.Height / 2 + 2)), New Point(Base.X + 9, CInt(Base.Height / 2 + 2)))
    .DrawLine(New Pen(_UpLineColour, 2), New Point(Base.X + 3, Base.Y - 3), New Point(Base.X + 3, Base.Height + 5))
    Else
    .DrawString(TabPages(i).Text, Font, New SolidBrush(_TextColour), txtrect, CenterSF)
    End If
    If img IsNot Nothing Then
    .DrawImage(img, Base.Left + 2, Base.Top + 2, Base.Height - 4, Base.Height - 4)
    End If
    Next
    End Using
    .InterpolationMode = InterpolationMode.HighQualityBicubic
    End With
    End Sub
    Private Declare Auto Function SetParent Lib "user32" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As IntPtr
    Protected CloseButtonCollection As New Dictionary(Of Button, TabPage)
    Private _ShowCloseButtonOnTabs As Boolean = True
    <Browsable(True), DefaultValue(True), Category("Behavior"), Description("Indicates whether a close button should be shown on each TabPage")> _
    Public Property ShowCloseButtonOnTabs() As Boolean
    Get
    Return _ShowCloseButtonOnTabs
    End Get
    Set(ByVal value As Boolean)
    _ShowCloseButtonOnTabs = value
    For Each btn As Button In CloseButtonCollection.Keys
    btn.Visible = _ShowCloseButtonOnTabs
    Next
    RePositionCloseButtons()
    Me.Refresh()
    End Set
    End Property
    Protected Overrides Sub OnCreateControl()
    MyBase.OnCreateControl()
    RePositionCloseButtons()
    End Sub
    Protected Overrides Sub OnControlAdded(ByVal e As System.Windows.Forms.ControlEventArgs)
    MyBase.OnControlAdded(e)
    Dim tp As TabPage = DirectCast(e.Control, TabPage)
    Dim rect As Rectangle = Me.GetTabRect(Me.TabPages.IndexOf(tp))
    Dim btn As Button = AddCloseButton(tp)
    btn.Size = New Size(CInt(rect.Height / 2), CInt(rect.Height / 2))
    btn.Location = New Point(rect.X + rect.Width - rect.Height + 11, CInt(rect.Y + 7))
    SetParent(btn.Handle, Me.Handle)
    AddHandler btn.Click, AddressOf OnCloseButtonClick
    'ResizeTabs()
    CloseButtonCollection.Add(btn, tp)
    End Sub
    Protected Overrides Sub OnControlRemoved(ByVal e As System.Windows.Forms.ControlEventArgs)
    Dim btn As Button = CloseButtonOfTabPage(DirectCast(e.Control, TabPage))
    RemoveHandler btn.Click, AddressOf OnCloseButtonClick
    CloseButtonCollection.Remove(btn)
    SetParent(btn.Handle, Nothing)
    btn.Dispose()
    MyBase.OnControlRemoved(e)
    'ResizeTabs()
    End Sub
    Protected Overrides Sub OnLayout(ByVal levent As System.Windows.Forms.LayoutEventArgs)
    MyBase.OnLayout(levent)
    RePositionCloseButtons()
    End Sub
    Public Event CloseButtonClick As CancelEventHandler
    Protected Overridable Sub OnCloseButtonClick(ByVal sender As Object, ByVal e As EventArgs)
    If Not DesignMode Then
    Dim btn As Button = DirectCast(sender, Button)
    Dim tp As TabPage = CloseButtonCollection(btn)
    Dim ee As New CancelEventArgs
    RaiseEvent CloseButtonClick(sender, ee)
    If Not ee.Cancel Then
    Me.TabPages.Remove(tp)
    RePositionCloseButtons()
    End If
    End If
    End Sub
    Protected Overridable Function AddCloseButton(ByVal tp As TabPage) As Button
    Dim closeButton As New Button
    With closeButton
    '' TODO: Give a good visual appearance to the Close button, maybe by assigning images etc.
    '' Here I have not used images to keep things simple.
    .Text = "X"
    .FlatStyle = FlatStyle.Flat
    .BackColor = _BaseColour
    .ForeColor = Color.White
    .Font = New Font("Microsoft Sans Serif", 6, FontStyle.Bold)
    End With
    Return closeButton
    End Function
    Public Sub RePositionCloseButtons()
    For Each item As KeyValuePair(Of Button, TabPage) In CloseButtonCollection
    RePositionCloseButtons(item.Value)
    Next
    End Sub
    Public Sub RePositionCloseButtons(ByVal tp As TabPage)
    Dim btn As Button = CloseButtonOfTabPage(tp)
    If btn IsNot Nothing Then
    Dim tpIndex As Integer = Me.TabPages.IndexOf(tp)
    If tpIndex >= 0 Then
    Dim rect As Rectangle = Me.GetTabRect(tpIndex)
    If Me.SelectedTab Is tp Then
    btn.BackColor = Color.Red
    btn.Size = New Size(CInt(rect.Height / 2), CInt(rect.Height / 2))
    btn.Location = New Point(rect.Right - rect.Height + 11, CInt(rect.Y + 7))
    Else
    btn.BackColor = _BaseColour
    btn.Size = New Size(CInt(rect.Height / 2), CInt(rect.Height / 2))
    btn.Location = New Point(rect.Right - rect.Height + 11, CInt(rect.Y + 7))
    End If
    btn.Visible = ShowCloseButtonOnTabs
    btn.BringToFront()
    End If
    End If
    End Sub
    Protected Function CloseButtonOfTabPage(ByVal tp As TabPage) As Button
    Return (From item In CloseButtonCollection Where item.Value Is tp Select item.Key).FirstOrDefault
    End Function
    #End Region
    End Class
     In the Form`s code you can set the images for the TabPage icons like this.
    Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.TabPage1.Tag = Image.FromFile("C:\testfolder\img1.png")
    Me.TabPage2.Tag = Image.FromFile("C:\testfolder\img2.png")
    End Sub
    End Class
     Here is an example of what it looks like.
    If you say it can`t be done then i`ll try it
    Thanks :)) I tried you code and it works perfectly.
    Though i don't want the tabs have their width's by the size of form, so i fixed a width,
    If Me.Created AndAlso Me.TabCount > 0 Then
    'Dim tw As Integer = CInt(Me.ClientSize.Width / Me.TabCount)
    'Dim offset As Integer = Me.TabCount
    'If Me.ItemSize.Width <> tw - offset Then Me.ItemSize = New Size(tw - offset, 32)
    Me.ItemSize = New Size(200, 32)
    End If
    Here is the screenshot,
    I just don't know why the arrows (left and right) aren't full. here is a gif,
    Why is that :O Should I paint the arrows as well ?

  • JInternalFrame Close operation

    Hi,
    I have a menubar. When menu item is clicked then the corresponding JinternalFrame is opened and the menu item is disabled. Now i have to enable the menu Item when the JInternalFrame is closed. How do i detect the close button has been clicked and the frame has closed?
    Thanks

    I wonder what would happen if you went to the [url http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JInternalFrame.html]api page for JInternalFrame and looked through it to see if there was some method which would add a listener to the internal frame which might pass some kind of internal frame event to a listener to tell the listener that the internal frame was closing???

  • How to perform action when the close button is pressed?

    i am using a JInternalFrame and i would like to perform some actions before the internal frame closes when i press the close button on the top right corner of the frame.
    i know the first step is:
    setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
    what next? what actionlistener shd i use??
    thx very much

    Your first step is wrong.
    yourInternalFrame.addInternalFrameListener(
         new InternalFrameAdapter(){
      public void internalFrameClosing(InternalFrameEvent e){
        // do part
    });

  • How to avoid the "Save As" dialog when using "Close Button"

    Hello All,
    I am facing a problem while closing a pdf file.
    I am using the following code to Open a pdf file.
    CAcroApp objAcroApp = new AcroAppClass();
    CAcroAVDoc objAVDoc = new AcroAVDoc();
    objAVDoc.Open(C:\\new.pdf,Sample);
    objAcroApp.Show();
    After opening the document I am **** some changes (adding markup) in the file.
    Then I am closing the file using the Close Button and in YES for the save confirmation dialog.
    Here is the problem.
    After giving YES, I am getting a Save As dialog with "Sample.pdf" in the FileName box.
    I am getting this only in Acrobat 9.0.
    When I tried the same in Acrobat 8.0 I didnt get Save As dialog. It saved with out "Save As" dialog in "C:\\new.pdf".
    I need to give the same behavior in both Acrobat 9.0 and 8.0.
    Please help me out to fix this issue. Thanks in advance.
    Regards,
    Mohd Mustafa SK

    In what you have posted, there is no reason it shouldn't work the same way in Acrobat 9. I would recommend that you submit your complete application to developer support.

  • How to suppress Save As dialog when using the Close button on an editable pdf

    Environment: Windows 7, SDK 9, Adobe Acrobat Pro X, Visual Studio 2010 Professional
    Summary: when a document is opened for editing using automation, edited, then closed using the "Close" button, the confirmation dialog appears, "yes" is selected and then the "Save As" dialog appears.  It should save without the "Save As" dialog in the same way it does were the document opened from Adobe Acrobat directly.  My question is, is there any flag to set which governs whether the "Save As" dialog appears as part of the close document process.  It is behaving as if the document is read-only upon close. (it isn't)
    This is how the document is opened from C++:
    if(SUCCEEDED(hr = ::CoCreateInstance(__uuidof(Adobe9::Acrobat::CAcroAVDoc), 0, CLSCTX_ALL, IID_IUnknown, (void**)&pUnk))){
    hr = OleRun(pUnk);
    if (SUCCEEDED(hr)){
    if (SUCCEEDED(hr = pUnk->QueryInterface(&pAVDoc))){
    hr = pAVDoc->Open((BSTR)CComBSTR(strPath), strDocName, &bRet);
    Even when the plugin is removed from the plug_ins\AcrobatSDK directory, the behaviour is the same.
    Another reproduction is running the BasicIacVC sample, commenting out all lines from gAcroPdDoc->Close(); in InitInstance() and returning TRUE.  If an editable document is opened using the sample, edited then closed using the "X" button, the confirmation dialog is followed by a "Save As" dialog as if it were a read-only document which it is not.
    Any suggestions would be appreciated.
    Regards,
    Evan

    Yes, it does.  (as long as the pdf has been opened via a COM interface)

  • Not able to get the minimize maximized and close button and its running with full screen mode.

    Hi
    My Thunderbird is running with ubuntu OS and while using some shortcut key my thunderbird mailbox switched to full screen mode. now i am not able to resize it's view and also not able to see minimize, maximize and close buttons on top left corner.
    Please help me out.
    Thanks

    I'm also running Ubuntu. Not sure how you got there, but you can try a Control-Q to quit. Then restart it and hope in comes back normal.

  • Unexpected performance of Firefox in Windows 7, namely minimize/maximize/close buttons not working and unable to move/resize window.

    I have been using FF for a while now. My main computer was WinXP-32, though I recently bought a new laptop with Win7-64 installed. This problem was never experienced on my WinXP machine.
    Brief description of problem:
    After a time of having FF up and running, the minimize/maximize/restore/close buttons in the top-right no longer work as expected and, if not maximised, I cannot move the window around my desktop nor resize the browser window. When clicked, the buttons will
    rapidly flash on and off continuously without appearing to perform any noticeable function other than temporarily hogging CPU cycles. I've found that clicking (sometimes double clicking) in the main browser window then mousing over the buttons again seems
    to stop them flashing, though does nothing else.
    To minimize/maximize/restore/move/close the window(s), I have to right-click on the relevant tab in my taskbar and pick the desired option. Occasionally, however, even this doesn't work and the right-click menu will disappear as soon as I move the mouse
    over it after right-clicking. 'Show desktop' is a temporary fix for minimising windows and 'ALT + F4' or 'CTRL + W' for closing windows or tabs. This isn't satisfactory and to move or resize a window, I have to close the window in question (sometimes all other
    windows too), reopen it and do what I need to do, though sometimes even this is only a very short fix. If I have to close all the windows, FF will sometimes keep running for a while afterwards, even though no windows are actually open - simply ending the process
    via the windows task manager will fix this though is only a work-around, not a fix.
    One thing I have noticed is that if I manage to move the browser window (when not maximised), for a short period afterwards I can often resize the window successfully. This is more likely to occur if the browser window is not flush with the edge of my screen
    once moved.
    I've tried to include as much information as I can - most of which was determined after several minutes/hours of playing around with different scenarios, trying to manually reproduce particular problems or simply through sheer luck of happening to click
    in the right place at the right time! I hope there is a reasonably fix for this at some point in the not-too-distant future.
    I noticed in some of the threads at another site where people have voiced problems similar to mine, that a link to 'ObjectDock' was discovered in some cases. I do have 'ObjectDock 1.90 Plus' installed on my machine and use it in many ways and so decided
    to see if I could find a connection between the two. I have uninstalled, tested, and reinstalled both programs in a multitude of ways, though could find no conclusive correlation between having both bits of software running or installed at the same time and
    the problems I am experiencing. In my case, at least, this does not appear to be an answer.
    Also, in another thread on this site, someone suggested there might be a link with AVG Anti-Virus Free (I have version 9.0.819) though I've tried uninstalling it and its various add-ons in several different combinations, with no noticeable improvement.
    Sorry for such a long question... If you need to know anything more, just let me know!
    - James
    System Information:
    Operating System: Windows 7 (64 bit)
    Firefox Version: 3.6.3
    Application Basics
    Name
    Firefox
    Version
    3.6.3
    Profile Directory
    <button onclick="openProfileDirectory()"> Open Containing Folder </button>
    Installed Plugins
    about:plugins
    Build Configuration
    about:buildconfig
    Extensions
    Name
    Version
    Enabled
    ID
    Update Service
    1.2
    true
    [email protected]
    Java Console
    6.0.17
    true
    {CAFEEFAC-0016-0000-0017-ABCDEFFEDCBA}
    Adblock Plus
    1.2
    true
    {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}
    Download Statusbar
    0.9.6.8
    true
    {D4DD63FA-01E4-46a7-B6B1-EDAB7D6AD389}
    Cooliris
    1.11.6
    true
    [email protected]
    FoxTab
    1.3
    true
    {ef4e370e-d9f0-4e00-b93e-a4f274cfdd5a}
    Save File to
    2.0.1
    true
    [email protected]
    1-Click YouTube Video Downloader
    1.4
    true
    [email protected]
    British English Dictionary
    1.19
    true
    [email protected]
    Tab History
    1.0.7
    true
    {84417002-6445-49b4-9fd7-1ef48240fa41}
    Universal Print
    0.4.23
    true
    {BE2100B3-1D80-48eb-ACCF-D26750644378}
    Active Stop Button
    1.3.0
    true
    {9e96e0c4-9bde-49b7-989f-a4ca4bdc90bb}
    Fission
    1.0.9
    true
    {1280606b-2510-4fe0-97ef-9b5a22eafe41}
    Smart Bookmarks Bar
    1.4.3
    true
    [email protected]
    Compact Menu 2
    3.1.1
    true
    {57068FBE-1506-42ee-AB02-BD183E7999E4}
    Menu Editor
    1.2.6
    true
    {EDA7B1D7-F793-4e03-B074-E6F303317FB0}
    Locationbar²
    1.0.5
    true
    [email protected]
    RealPlayer Browser Record Plugin
    1.0
    true
    {ABDE892B-13A8-4d1b-88E6-365A6E755758}
    AVG Safe Search
    9.0.0.812
    true
    {3f963a5b-e555-4543-90e2-c3908898db71}
    Searchbar Autosizer
    1.4.5
    true
    {655397ca-4766-496b-b7a8-3a5b176ee4c2}
    Open Bookmarks in New Tab
    0.1.2010043001
    true
    [email protected]
    Remove New Tab Button
    1.0
    true
    [email protected]
    New Tab Homepage
    0.4.2
    true
    {66E978CD-981F-47DF-AC42-E3CF417C1467}
    SwiftTabs
    0.3.6.8
    true
    {5F4EC95A-FFA8-11DE-898C-667D55D89593}
    Tab Kit
    0.5.8
    true
    [email protected]
    Hide Find Bar
    1.3.1
    true
    [email protected]
    Toolbar Buttons
    0.6.0.8
    true
    {03B08592-E5B4-45ff-A0BE-C1D975458688}
    Java Console
    6.0.19
    true
    {CAFEEFAC-0016-0000-0019-ABCDEFFEDCBA}
    View Cookies
    1.10.1
    true
    {8F6A6FD9-0619-459f-B9D0-81DE065D4E21}
    Adobe DLM (powered by getPlus(R))
    1.6.2.63
    true
    {E2883E8F-472F-4fb0-9522-AC9BF37916A7}
    Modified Preferences
    Name
    Value
    accessibility.typeaheadfind.flashBar
    0
    browser.history_expire_days.mirror
    180
    browser.places.importBookmarksHTML
    false
    browser.places.smartBookmarksVersion
    2
    browser.startup.homepage
    http://www.bath.ac.uk/
    browser.startup.homepage_override.mstone
    rv:1.9.2.3
    browser.tabs.closeButtons
    0
    browser.tabs.tabMinWidth
    77
    browser.tabs.warnOnClose
    false
    extensions.lastAppVersion
    3.6.3
    network.cookie.prefsMigrated
    true
    network.http.pipelining
    true
    network.http.pipelining.maxrequests
    50
    network.http.proxy.pipelining
    true
    places.last_vacuum
    1271706454
    privacy.sanitize.migrateFx3Prefs
    true
    privacy.sanitize.timeSpan
    0
    security.warn_viewing_mixed
    false
    security.warn_viewing_mixed.show_once
    false

    Hi Kossa,
    You can also check if the issue occurs in
    Clean Boot. If the issue disappears in the Clean Boot environment, you can continue to narrow down which entry is causing the issue.
    Besides, uninstall it and re-download
    a fresh copy of FireFox to check the result. If the issue still exists, create a new user account to see if it occurs.
    If the issue persists, you can contact Mozilla Support directly and use Internet Explorer (IE) during the time.
    J
    Please Note: The third-party product discussed here is manufactured by a company that is independent of Microsoft. We make no warranty, implied or otherwise,
    regarding this product's performance or reliability.
    Regards,
    Linda

  • Save and Close button issue in CRM 2013 for Activity Type Appointment

    Hi All,
    Have come across a strange behavior in CRM 2013 and would like  to be sure that it really is an issue which others have encountered too.
    Open a Case record, and click on Activity navigation link to see the Open Activity Associated View. Then try creating an Activity of type Meeting and click on
    Save & Close button (not just Save). When you refresh the view, the activity might show up. But repeat the same steps and create another Activity of Type Meeting and this activity will not show up. It doesnt show up even in the All Activities
    view. Seems like the activity does not get created when using Save and Close button.
    This behavior is replicated even on online 30 day trial version. Any inputs?
    Regards,
    Yogesh

    The problem only occurs when your appointment times clash.   "Save and close" just throws the appointment away.  "Save" tells you about clash (or perhaps it's just unavailability) and allows you to ignore and continue with the
    save.

  • Missing maximize, minimize and close buttons

    I see that people have been having problems with these issues before the finalized FF4, I have the most updated version on my PC. The answers all seem to say it was a problem with beta versions. When I stay online for long periods of time my full screen, minimize and close buttons disappear. I have 2 screens and have found that when I pull a tab to the other screen the buttons reappear with that tab. But all the tabs still on previous screens are still missing. If I pull the whole set of tabs (opened together) I still can not get the buttons to reappear. when I am ready to close all the open tabs at once I use task manager and close down FF4. Right now I see my background screen where the button should be.

    Make sure that you do not run Firefox in full screen mode (press F11 or Fn + F11 to toggle; Mac: Command+Shift+F).
    *https://support.mozilla.org/kb/how-to-use-full-screen
    If you are in full screen mode then hover the mouse to the top of the screen to make the Navigation Toolbar and Tab bar appear.<br>Click the Maximize button (top right corner of the Navigation Toolbar) to leave full screen mode or right-click empty space on a toolbar and choose "Exit Full Screen Mode" or press the F11 key.
    Start Firefox in <u>[[Safe Mode|Safe Mode]]</u> to check if one of the extensions (Firefox/Tools > Add-ons > Extensions) or if hardware acceleration is causing the problem.
    *Switch to the DEFAULT theme: Firefox/Tools > Add-ons > Appearance
    *Do NOT click the Reset button on the Safe Mode start window
    *https://support.mozilla.org/kb/Safe+Mode
    *https://support.mozilla.org/kb/Troubleshooting+extensions+and+themes
    You can also try a different Windows theme.

  • Alert messages from Notification Center hang after using close button

    After opening my MacBook in the morning, Notification Center displays the alerts from my Calender (I realy like this new feature!).
    Problem
    When I click the Close Button on an Alert Message the Alert Message does not close but stops responding and stays displayed.
    The only way to get rid of it is to logout and login to OSX.
    Does anyone have the same problem?
    I am looking for a solution.
    All suggestions are welcome!
    Thanks,
      Chris

    Hi,
    Uploaded with Skitch!
    As you can see the System Preferences > Notification Pane talks about "Alerts" in a general way first
    Then it offers options on how the Notifications are displayed.
    I was presuming you were talking about the Notifications in the same general way and I was asking which option you were using
    Since my first post in this thread I have changes my Mail Notifications to Alerts (It seems to be the one with more issue)
    It does hang around until I deal with it
    It then send me to Mail but the Incoming mail item(s) is(are) no longer marked  as unread.
    This makes it a little difficult to check the generic Inbox rthat has five Accounts set up.
    I am not getting a spinning beach Ball and the Alert Style Notification goes away.
    10:18 PM      Saturday; September 8, 2012
    Please, if posting Logs, do not post any Log info after the line "Binary Images for iChat"
      iMac 2.5Ghz 5i 2011 (Lion 10.7.2)
     G4/1GhzDual MDD (Leopard 10.5.8)
     MacBookPro 2Gb (Snow Leopard 10.6.8)
     Mac OS X (10.6.8),
    "Limit the Logs to the Bits above Binary Images."  No, Seriously

  • CRM 2013 - "Save and Close" button behavnig like "Save and New"

    Hi,
    I am working in CRM 2013. I have a scenario in which I am saving new opportunity product record through javascript and preventing original save of CRM. Save is working fine. After save, I need to refresh the screen. So I have used "Xrm.Utility.openEntityForm"
    to open newly created item in edit mode. When I click on "Save and Close" button on this new form in edit mode, instead of closing the opportunity product screen, it opens new entity form. So in short, after saving the record, if I click on "Save
    and Close", it behaves like "Save and New".
    Any one facing such issue?

    Save & Close seems to behave like the Save & "Back" Button, so the form tries to return to the new form, that was opened before.
    But I have no solution for this behavior...

  • How i can dissable/remove close buttons from popup window

    We have an web application so i want to dissable/remove the close button , so please help me as soon as possible.
    we are using only firefox for our web application and also for private use.
    Thank you.

    Just to be sure, you want to '''Remove''' the close button?
    I called the big guys for you.

  • Safari 5.1.2 Tab Close Button on Different Sides in Windows

    I'm not sure if this is unique to my computer(s), but I've noticed that the tab close button is on different sides in the Mac & Windows versions of Safari. On my Mac, the close button is on the Left-Hand side with the tab text centered on the tab. On my Windows, the close button is on the Right-hand side with the tab text justified to the left.
    Why the difference in UI? I do quite a bit of browsing on both computers and I find that I'm constantly having to try to remember where I am to determine where the stupid close button is.
    I've looked around in both the Mac & Windows versions and I can't find an option that specifies where the button is show and whether the text is justified or not.

    OK, here's what I'm talking about. This is a screen capture of a tab from the Macintosh version of Safari:
    Notice how the "X" to close the tab is on the left-hand side and the text of the tab is centered on the width of the tab.
    Here is a screenshot of the Windows version of Safari:
    You can see how the tab is much smaller for one, but also how the text is justified to the left with the "X" to close the tab appearing on the right side of the tab instead of the left.
    I don't really prefer one over the other (ie. left or right side), I just wondered if there's some setting to make them act the same way on both so that I don't have to constantly remember what OS I'm on in order to remember where the darn "X" is to close the tab.

  • Thanks For Your Support in advance i want to know that when I open a website that time view print option and when I click close button then page also new window page also close. I want to copy it how i can stop this print option?

    WHEN I OPEN A URL THAT TIME WITH PAGE OPEN SHOWS PRINT OPTION AND WHEN I CLICK CLOSE BUTTON OF PRINT OPTION THAT TIME NEW WINDOW BUTTON IS CLOSED. I WANT TO CLOSE ONLY PRINT OPTION. PLEASE HELP ME...............THANKS

    Many sites which offer specific "print formatted" pages do that: they assume that once you have finished with the print dialog you no longer want the page itself. So for your convenience they close it. Not so convenient for you, since you still want to view the page.
    I'm not aware of an easy solution for this. I can think of a couple different approaches.
    First, maybe there's an add-on to solve this? That would be easiest.
    Second, maybe there's a userscript to solve this?
    The Greasemonkey add-on runs userscripts which you can copy or download. Be careful to install only long-establish and trusted scripts. (''Is there a site that has this bad behavior that I can view without logging in? I will test one of my existing scripts to see whether it helps.'')
    Third, Firefox has an old system for restricting site permissions in a custom text file in your profile folder (named user.js). Editing this file is a bit advanced, and I haven't been able to test it, but the system works along these lines:
    <br>// Define a policy name for window.close permission
    // (assumes you don't have this pref already)
    user_pref("capability.policy.policynames", "nowindowclose");
    // Define policy: disable sites from using window.close
    // in their scripts
    user_pref("capability.policy.nowindowclose.Window.close", "noAccess");
    // List of sites subject to this policy
    user_pref("capability.policy.nowindowclose.sites", "firstbadsite.com secondbadsite.com");
    Again, I haven't tested that and recommend looking into add-ons first.

Maybe you are looking for